2013-09-29 75 views
0

剛剛從VB6開始升級到VB.Net。使用VB.NET格式化日期

txtFrom.Text = "1/8" 
txtFrom.Text = Format(txtFrom.Text, "dd/MM/yyyy") 

此代碼在文本框中生成DD/MM/YYYY

我該怎麼做才能生產01/08/13

+2

沒有年份輸入哪一年你期望輸出? –

回答

0

我應該怎麼做才能生產01/08/13?

dd/MM/yy 
4

解析日期。重新格式化日期。

Dim d As Date = Date.ParseExact(txtFrom.Text, "d/M", CultureInfo.InvariantCulture) 
txtFrom.Text = d.ToString("dd/MM/yy") 

Custom date format strings

+0

這不會創建一個年份值爲0(基於時代)的日期嗎?那麼,1月8日,0001 A.D.?我希望他會需要另一塊把當前或前一年放在那裏。 –

+1

@JoelCoehoorn:之後我測試了一下,[顯然不是](http://ideone.com/qe4QAR)。 – Ryan

+1

有趣。這對我來說是違反直覺的,但是,嘿:如果它有效...... –

0

"dd/MM/yyyy"格式功能將格式化日期對象,而不是一個字符串。您可以將字符串從文本轉換爲使用CDATE日期:

txtFrom.Text = Format(CDate(txtFrom.Text), "dd/MM/yyyy") 

您可能需要使用IsDate或情況txtFrom.Text一個try-catch塊是無效的日期。

-2
Dim sFormat As System.Globalization.DateTimeFormatInfo = New System.Globalization.DateTimeFormatInfo() 
sFormat.ShortDatePattern = "dd/MM/yyyy" 
txtFrom.Text = Format(Convert.ToDateTime(txtFrom.Text+Now.Year.ToString(), sFormat), "dd/MM/yyyy")