2016-08-12 2 views
0

string value = "15:10" Мне нужно преобразовать строковое значение "15:10", чтобы это понравилось "1899-12-30 15: 10: 00.000" Я пишу ниже код, есть ли какой-либо стандартный формат даты/времени.стандартный формат для преобразования строки в datetime в vb.net

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

У меня есть обновленный quetion – John

+0

У вас есть другие значения, такие как год и т. Д.? – Raskayu

ответ

3

После того, как у вас есть объект DateTime вам просто нужно контролировать, как это выход, когда вы называете это .ToString() метод.

Есть перегрузка ToString, которая принимает строку формата. Если вы хотите, чтобы вывод быть:

1899-12-30 15: 10: 00,000

тогда строка, которую вы должны предоставить это:

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

Кроме того, когда вы разбирает дату вы можете включить двоеточие в строке формата синтаксического анализа («yyyyMMddHH: мм»), так что вы не будете нуждаться в линии

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.

Смежные вопросы