ConvertTimeToUtc current time
我喜欢将当前的日期时间存储在名为entry date的变量中。当我执行上述操作时,会收到以下消息:
1 2 3 | var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); var EntryDate = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, tz); |
我收到以下信息:
无法完成转换,因为提供的日期时间未正确设置Kind属性。例如,当kind属性为datetimekind.local时,源时区必须为timezoneinfo.local。
我试过很多方法来表示友好,但没有成功。
将代码更改为类似的格式有几种方法可以获得UTC日期这里有三种不同的方法可以获得UTC日期/时间
1 2 3 4 | var locDateTimeStr = DateTime.Now.ToString(); DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(locDateTimeStr),DateTimeKind.Utc); var kind = convertedDate.Kind; // `Kind you are seeking` DateTime dt = convertedDate.ToLocalTime(); |
或
1 | var utcDateNow = DateTime.Now.ToUniversalTime(); |
或
1 | var utcDateNow2 = DateTime.UtcNow; |
不清楚你想做什么。对clr的日期/时间支持,imho,考虑得不充分。如果默认情况下提供了UTC日期和时间,那么它将有助于转换为本地表示(对于某些"本地"的定义)。那几乎是…类UNIX。但我离题了。
无论如何,这可能有助于:
要获取当前即时的时间,请相对于当前时区表示:
1DateTime localNow = DateTime.Now ;要及时获得当前的即时信息,可以说是zulu/gmt/utc(universel temps coordonn—不完全是惯用或语法正确的法语,但委员会擅长语言屠杀)。
1DateTime utcNow = DateTime.UtcNow ;(请注意,UTC时间是恒定的,不依赖于时区。如果您的计算机分散在世界各地并配置为本地时区
- 东京
- 纽约市
- 巴黎
- 伦敦
他们同时执行以下代码行:
1DateTime now = DateTime.UtcNow ;它们对
now 的价值完全相同。如果你已经有了本地的"现在",你可以说:
1DateTime utcNow = localNow.ToUniversalTime() ;
一旦你有了一个"现在"的UTC,你就可以通过说如下的话来获得时区的时间:
1 2 | TimeZoneInfo desiredTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time") ; DateTime desiredLocalNow = TimeZoneInfo.ConvertTime( utcNow , desiredTimeZone ) ; |
您会注意到,如果您尝试将
1 2 3 4 5 6 | DateTimeOffset utcNow = DateTimeOffset.UtcNow ; DateTimeOffset localNow = utcNow.ToLocalTime() ; TimeZoneInfo desiredTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time") ; DateTimeOffset desiredLocalNow1 = TimeZoneInfo.ConvertTime( localNow , desiredTimeZone ) ; DateTimeOffset desiredLocalNow2 = TimeZoneInfo.ConvertTime( utcNow , desiredTimeZone ) ; |
希望这有帮助!
如果您试图将本地时间转换为不同的时区(从您的帖子中可以看出这一点),请使用
1 2 | var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); var EntryDate = TimeZoneInfo.ConvertTime(DateTime.Now, tz); |
我不知道你想做什么。
如果需要UTC日期,直接使用