我如何转换" 2015-11-06T18:34:07 + 05:30"字符串到C#中的UTC DateTime对象

时间:2015-11-07 05:12:32

标签: c# datetime timezone utc timestamp-with-timezone

我需要转换" 2015-11-06T18:34:07 + 05:30"时间戳从服务器到C#中的DateTime对象。然后我需要将此DateTime转换为UTC以便在同步过程中进行比较。此时间戳中的时区可以变化。那么如何创建时区独立功能以获取UTC DateTime来自此时间戳字符串的对象。

1 个答案:

答案 0 :(得分:1)

   with self.input_target().open('r') as r, self.output_target().open('w') as w:                                                                                                                        
       w.write(r.read())                         

或者:

DateTime dt = DateTime.Parse("2015-11-06T18:34:07+05:30",
               CultureInfo.InvariantCulture,
               DateTimeStyles.AdjustToUniversal);

或者:

DateTime dt = DateTime.ParseExact("2015-11-06T18:34:07+05:30",
                                  "yyyy-MM-dd'T'HH:mm:ssK",
                                  CultureInfo.InvariantCulture,
                                  DateTimeStyles.AdjustToUniversal);

或者:

DateTimeOffset dto = DateTimeOffset.Parse("2015-11-06T18:34:07+05:30",
                                          CultureInfo.InvariantCulture);
DateTime dt = dto.UtcDateTime;

当然,如果您需要验证,还有DateTimeOffset dto = DateTimeOffset.ParseExact("2015-11-06T18:34:07+05:30", "yyyy-MM-dd'T'HH:mm:sszzz", CultureInfo.InvariantCulture); DateTime dt = dto.UtcDateTime; TryParse变体。

就个人而言,我建议将其保留为TryParseExact,而不是返回DateTimeOffset

还有Noda Time

DateTime