2017-04-13 119 views
0

我有一個建立在Studio 2017中的VB程序。我需要生成可用於文件名的格式的時間。VB.Net自定義時間格式

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 

吐出12:00:00例如和:在文件名中不可用。

我可以做或刪除:所以它會是1200000(不特別可讀,但適合我的目的)或12-00-00。

我檢查了here,並且無法看到任何ToString格式可以解決問題。

我的代碼會將一個標籤(比如label1)放到當前日期和時間。另一部分將使用Label1.Text來獲取字符串。所以任何格式都可以在Label1上發生。

例如,它將如下使用;

oDoc = oWord.ActiveDocument 
oDoc.saveas2("C:\Test\" & "DocumentTitle" & "-" & label1.text & ".docx" 

有沒有辦法將日期字符串格式化爲我想要的?

+0

爲什麼你不能用'DateTime.Now.ToString( 「YYYY-MM-DD HH-MM-SS」)'或'DateTime.Now.ToString( 「YYYY-MM-DD HHMMSS」) '?我有時使用一段時間來分隔小時,分鐘和秒鐘:DateTime.Now.ToString(「yyyy-MM-dd HH.mm.ss」)' –

回答

2

只需使用與string.replace

Dim ActualTime as String = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") 
ActualTime = ActualTime.Replace("/","-").Replace(":","-") 
oDoc = oWord.ActiveDocument oDoc.saveas2("C:\Test\" & "DocumentTitle" & "-" & ActualTime & ".docx" 

不是最優化,但清楚明白。按照Visual Vincent的建議添加了一行替換。

請務必檢查他的解決方案。

+0

非常感謝 - 我只是偶然發現了這個解決方案,並且正在玩這個; Label2.Text = Format(Now,「HH:mm:ss」) Dim input As String = Label2.Text Dim aString As String = Replace(input,「:」,「 - 」) Label2.Text = aString –

+0

爲什麼使用標籤,而不是直接在代碼中使用變量? – Mederic

+0

你是對的 - 我採用了你的代碼而不是使用標籤。 –

4

爲什麼首先添加冒號?

DateTime.Now.ToString("yyyy-MM-dd HHmmss")