2016-08-12 156 views
0

string value =「15:10」 我必須將字符串值「15:10」轉換爲這樣的「1899-12-30 15:10:00.000」 我寫下面的代碼是否有任何標準的日期/時間格式。在vb.net中將字符串轉換爲datetime的標準格式

Private Function GetCurrentTime(ByVal dtnew As String) As DateTime 

     Dim oaDate As DateTime 
     Dim timeValue As DateTime 
     Dim dtNow As DateTime 
     'Final date time to be stored in the time field 

     oaDate = DateTime.FromOADate(0) 
     dtnew = String.Concat(oaDate.Year, oaDate.Month, oaDate.Day, dtnew) 
     dtnew = dtnew.Replace(":", String.Empty) 
     dtNow = DateTime.ParseExact(dtnew, "yyyyMMddHHmm", Globalization.CultureInfo.InvariantCulture) 'Convert.ToDateTime(dtnew).ToString("HH:mm") 
     timeValue = dtNow 'New DateTime(oaDate.Year, oaDate.Month, oaDate.Day, dtNow.Hour, dtNow.Minute, dtNow.Second) 
     Return timeValue 

    End Function 
+1

我沒有得到你需要的東西 – Raskayu

+0

我已經更新了佇列 – John

+0

你有像年份等其他值? – Raskayu

回答

3

一旦你有一個DateTime對象,你只需要控制它是如何的輸出,當你調用它的.ToString()方法。

有一個採用格式字符串的ToString重載。如果你想輸出是:

1899-12-30 15:10:00.000

那麼你需要提供的字符串是:

"yyyy-MM-dd HH:mm:ss.fff" 

而且,當你解析日期你可以在分析格式字符串中包含冒號(「yyyyMMddHH:mm」),因此您不需要該行

dtnew = dtnew.Replace(":", string.Empty) 
0

如果您知道傳遞的字符串始終格式爲「HH:mm」,則只需將這些元素替換爲您將返回的DateTime即可。

Private Function GetCurrentTime(ByVal dtnew As String) As DateTime 
    'We get the date 
    Dim oaDate As DateTime = DateTime.FromOADate(0) 
    'We change the Hour 
    oaDate.Hour = dtNew.Substring(0, 2) 
    'We change the minutes 
    oaDate.Minute = dtNew.Substring(3, 2) 
    return oaDate 
End Function 

此日期的輸出格式並不重要,因爲您修改DateTime結構的字段。