2016-08-12 8 views
0

文字列値= "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構造体のフィールドを変更するため、この日付の出力形式は問題ありません。

関連する問題