2015-07-22 176 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