我有下面的文本,我试图解析成一个日期,但我似乎不能得到正确的时区。
想法?
2015年5月29日星期五00:00:00 GMT-0700(太平洋夏令时)
(我不能改变日期结构)
试试这个:
string str = "Fri May 29 2015 00:00:00 GMT-0700 (Pacific Daylight Time)";
DateTime dt = new DateTime();
bool b = DateTime.TryParseExact(str.Substring(0,33), "ddd MMMM dd yyyy hh:mm:ss 'GMT'zzz", null, DateTimeStyles.None, out dt);
这使得假设时区的描述是无关的,因为给出了与GMT的偏移量。因此,只解析原始日期字符串的子字符串到时区偏移部分应该就足够了。
演示我有时会用一个捷径。
首先根据空格分割字符串,如:
var dateString = 'Fri May 29 2015 00:00:00 GMT-0700 (Pacific Daylight Time)';
var dateArray = stdateString.Split(' ');
第二,我们需要时间。, var timeString = dateArray[4];
var timeArray = timeString.Split(':');
第三个时区
var timezoneString = dateArray[5];
var timezoneSignPart = timezoneString.Substring(3,1)
var timezoneHourPart = timezoneString.Substring(4,2)
var timezoneMinPart = timezoneString.Substring(6,2)
之后你可以用它来构造你想要的日期
当我没有太多的时间来调查即将到来的日期字符串的问题时,这是我非常私人的方式。