c#日期时间格式和存储时区信息

本文关键字:存储 时区 信息 格式 日期 时间 | 更新日期: 2023-09-27 18:11:00

我得到的字符串的形式是:

" 2011 - 10 - 12 - t11:55:34.803est"

" 2011 - 10 - 05 - t16:58:05.043gmt"

我想将这些值存储为DateTime对象,但简单的DateTime. parse()不起作用。我是否可以将这些字符串转换为DateTime对象?据我所知,DateTime不知道时区

c#日期时间格式和存储时区信息

你可以用z代替GMT,它会工作:

string date = "2011-10-05T16:58:05.043GMT".Replace("GMT", "z");
Console.WriteLine(DateTime.Parse(date));

格林尼治标准时间

+1到IAbstractDownvoteFactor - Z是最佳区域

您的日期时间看起来几乎像Iso8601,但使用自定义时区(http://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators为初始信息)。

使用时区是非常困难的,因为它们的规则可能会改变,有些可能会出现或消失。如果您可以影响传入格式-要求在时区中输入UTC (Z)或绝对偏移量(+08:00)。

否则你需要弄清楚你需要支持哪个时区,弄清楚规则是否改变过,夏令时是否设置正确(即适当时使用PDT/PST)。获得乐趣。