2015-07-22 129 views
-1

我有日期字符串格式如下转换格式的日期为DateTime C#

Tue Jun 30 2015 00:00:00 GMT+0530 (India Standard Time) 

我想将它转换为DateTime在C#。

我使用javascript从telerik datepicker获取此日期。

+1

可能重复(http://stackoverflow.com/questions/919244/converting-a-string-to-datetime) – Sayse

回答

0

由于您的字符串有UTC offset,我会将其解析为DateTimeOffset。并且没有办法解析您的GMT(India Standard Time)部件而不使用文字字符串分隔符。请记住,DateTimeDateTimeOffset都不是时区,而是。至少因为它知道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}

作为替代(和更好的选择),NodatimeZonedDateTime structure是;

在特定时区和与特定偏移 否则歧义时刻之间进行区分甲LocalDateTime。 [将字符串转换为DateTime]的

+0

我需要使用不同的分隔符不同的文化? – Twix

+0

@Twix你在说什么分隔符?由于你的字符串有':'作为'TimeSeparator',所以文化也需要它。 –

+0

该解决方案如何适用于不同的时区。我的意思是“格林威治标准时间”和“印度标准时间”),这可能取决于用户的文化。 – Twix