C# 在C语言中将本地时区转换为PST时区#
假设我现在在系统中的时区是+5GMT 现在在我的机器上C# 在C语言中将本地时区转换为PST时区#,c#,timezone,C#,Timezone,假设我现在在系统中的时区是+5GMT 现在在我的机器上01/14/2012 05:52 pm我想把它转换成PST时区 1/14/12 4:52:50 AM PST 反之亦然 TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time"); DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, ti
01/14/2012 05:52 pm
我想把它转换成PST时区
1/14/12 4:52:50 AM PST
反之亦然
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time");
DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, timeZoneInfo);
您可以看到可用时区的完整图表
另请看下面的代码转换为PST
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
受@HarisHasan上述答案的启发,以下方法将产生PST,无论代码在何处运行:
public static DateTime GetPacificStandardTime()
{
var utc = DateTime.UtcNow;
TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var pacificTime = TimeZoneInfo.ConvertTimeFromUtc(utc, pacificZone);
return pacificTime;
}
如果我们在Linux中部署应用程序(在.NET Core的情况下),就会失败,找到这个很好的库,它将在windows和Linux中提供正确的TimeZoneInfo“TimeZoneConverter”,使用它我们可以像
using TimeZoneConverter;
TimeZoneInfo pst =TZConvert.GetTimeZoneInfo("Pacific Standard Time");
DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, pst);
using TimeZoneConverter;
TimeZoneInfo pst =TZConvert.GetTimeZoneInfo("Pacific Standard Time");
DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, pst);