我有如下字符串格式的日期
Tue Jun 30 2015 00:00:00 GMT+0530 (India Standard Time)
我想在c#中将其转换为DateTime
。
我正在使用javascript从teleerik datepicker获取此日期。
由于您的字符串具有UTC偏移量,因此我会将其解析为DateTimeOffset
。并且没有办法解析您的GMT
和(India Standard Time)
部分,而不使用文字字符串分隔符。记住,DateTime
和DateTimeOffset
都不支持时区。DateTimeOffset
稍微好一点,至少因为它知道UTC的瞬间和偏移量。
var s = "Tue Jun 30 2015 00:00:00 GMT+0530 (India Standard Time)";
DateTimeOffset dto;
if (DateTimeOffset.TryParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT'K '(India Standard Time)'",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dto))
{
Console.WriteLine(dto);
}
现在DateTimeOffset
变成了{30.06.2015 00:00:00 +05:30}
作为一种替代(也是更好的选择),nodeatime具有ZonedDateTime
结构,它是;
一个
LocalDateTime
在一个特定的时区和一个特定的偏移量用来区分不明确的瞬间。