2014-02-24 82 views
3

我有一個string其中包含:2011年12月14日上午9:45(注意到, 「AM」 沒有大寫「)日期時間自定義格式 - 顯示AM/PM爲資本,而不是AM/PM

現在我想創造一個datetime變量它。

我試圖尋找this,但它是我想要的東西相反。 我也試過this,但未能成功。 我已經試過到目前爲止,這是:

Dim dateNow As DateTime 
Dim out As String = "14 Dec 2011 9:45 am" 
dateNow = DateTime.ParseExact(out, "d MMM yyyy HH:mm tt", Nothing) 

但可悲的是它不工作。任何想法?謝謝。 VB.net或C#代碼將會沒問題..

+0

檢查System.FormatException消息 – qwr

+0

您是否嘗試過使用'DateTime.Parse()'? –

+0

嘿謝謝..它現在工作..看到下面的答案.. – Codemunkeee

回答

6

您可能需要單個H而不是HH,因爲小時是datetime字符串中的單個數字。你應該有09有小時,如果你有HH小時。還使用小H與AM和PM 12小時,資本H24小時時間格式,像1:28 PM13:28 PM

dateNow = DateTime.ParseExact(out, "d MMM yyyy h:mm tt", Nothing) 

鄰接利用顯示如下小時不同的選項的描述。

enter image description here

您可以瞭解更多關於自定義格式爲DataTimehere

+0

嘿阿迪爾,謝謝。我試過了,但它給了我「字符串不被認爲是有效的日期時間。」字符串是:「2011年9月21日下午1時28分」 我不明白爲什麼會發生,一切似乎如此完美 – Codemunkeee

+0

你需要小h,12小時上午,下午,檢查我更新的答案。 – Adil

+0

嘿謝謝。它現在有效。但是,可否請您簡單地將H改爲H來告訴我發生了什麼? – Codemunkeee

2

試圖給這樣14 Dec 2011 09:45上午加0附近小時9

Dim dateNow As DateTime 
Dim out As String = "14 Dec 2011 09:45 am" 
dateNow = DateTime.ParseExact(out, "dd MMM yyyy HH:mm tt", Nothing) 

退房Custom Date and Time Format Strings

+0

嘿兄弟..謝謝:) – Codemunkeee

+0

@Codemunkeee歡迎兄弟;) –

0

您還可以使用陣列的允許的格式是這樣的:

Dim dateNow As DateTime 
    Dim out As String = "14 Dec 2011 12:45 am" 
    Dim allowedFormats() As String = {"d MMM yyyy h:mm tt", "dd MMM yyyy h:mm tt", "d MMM yyyy hh:mm tt", "dd MMM yyyy hh:mm tt"} 
    dateNow = DateTime.ParseExact(out, allowedFormats, Nothing, Globalization.DateTimeStyles.None)