2012-08-08 80 views
0

我想將日期格式化爲特定的字符串,並且代碼返回不正確的結果。將時間轉換爲字符串格式VB.net

CDate(RDate).ToString("ddMMy")

還是返回了一年,2位是有辦法讓它返回正確的只是最後一個數字?我知道我可以使用substring來獲得結果,但我想使用格式字符串來允許客戶創建自己的結果。

回答

2

只需用的String.Format()一起膠水他們:

Dim dt = CDate(RDate) 
    Dim s = String.Format("{0}{1}", dt.ToString("ddMM"), dt.Year Mod 10) 
+0

啊,這很聰明 – user1500403 2012-08-08 01:36:34

1

'y'只是表示如果年份介於0到9之間,則將刪除前導0。沒有獲取年份最後一位的格式。

請參閱MSDN documentation瞭解可用的自定義格式。

1

自定義格式年份格式僅限於返回至少2位數的年份,Comfortent_tech提及您使用y的地方以及年份以00到09結尾的情況除外。您可以查看MSDN Documentation。你將需要使用字符串操作來實現你想要的。


使用這個事實,你可以嘗試這樣的事情。

Dim RDate As Date = Now.Date 
Dim NDate As Date = New Date((RDate.Year Mod 10), RDate.Month, RDate.Day) 
CDate(NDate).ToString("ddMMy") 
+0

這幾乎是正確的:0到9年的特例是用y格式字符串處理的,它允許一個數字。 – 2012-08-08 01:08:48

+0

@competent_tech你是對的我編輯它。它只會在世紀的1/10工作。 – 2012-08-08 01:14:52

+0

謝謝你們,我確實看到了MS的格式化,但我想可能是我遺漏了一些東西,顯然不是。 – user1500403 2012-08-08 01:38:09

0

試試這個代碼:

Dim dt As DateTime = DateTime.Now 

CDate(dt).ToString("ddMMyy").Remove(4, 1) 

這個代碼刪除第2位年份值。

相關問題