C# TimeZoneInfo.ConvertTimeFromUtc返回了错误的日期时间
我调用了方法:C# TimeZoneInfo.ConvertTimeFromUtc返回了错误的日期时间,c#,.net,datetime,timezone,utc,C#,.net,Datetime,Timezone,Utc,我调用了方法: TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")) // UTC+0 返回的DateTime比正确的DateTime大一小时。 为什么?它将如何修复 返回的值应等于DateTime.Now.ToUniversalTime()DateTime.Now.ToUniversalTime()已重
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")) // UTC+0
返回的DateTime比正确的DateTime大一小时。
为什么?它将如何修复
返回的值应等于DateTime.Now.ToUniversalTime()
DateTime.Now.ToUniversalTime()
已重新运行UTC,无需再次将其转换为UTC
提示:使用DateTime.UtcNow
如果您真的只需要UTC,那么您根本不必关心时区以及您的本地时区
更新:哦,“格林威治标准时间”不是“格林威治标准时间” UTC等于GMT。但由于夏季的原因,我们目前处于英国夏令时,即GMT+1<代码>格林尼治标准时间自动调整夏令时。如果您不想调整夏令时,请使用
格林威治标准时间
,而不是格林威治标准时间
编辑:您只需将GMT标准时间
更改为格林威治标准时间
(见下文)
你可能想看看,如果你必须转换大量的datesHow给我,你会用GMT转换吗?请给出示例代码。此代码运行到一个方法中。时区是该方法的参数。
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time"))