1

文字列として渡された日時値をJavascriptコードからVB.net日時オブジェクトに変換しようとしています。

これは私が変換しようとしているものです

2012年9月27日木曜日14:21:42GMT+ 0100(BST)

これが私がこれまでに持っているものですが、この日付文字列を変換するのは本当に苦労しています

Public Function TryParseDate(dDate As String) As Date

    Dim enUK As New CultureInfo("en-GB")
    Dim Converted_Date As Nullable(Of Date) = Nothing
    Dim Temp_Date As Date
    Dim formats() As String = {"ddd MMM d yyyy HH:mm:ss GMTzzz (BST)", _
                               "ddd MMM d yyyy HH:mm:ss GMTzzz", _
                               "ddd MMM d yyyy HH:mm:ss UTCzzz"}

    ' Ensure no leading or trailing spaces exist
    dDate = dDate.Trim(" ")

    ' Attempt standard conversion and if successful, return the date
    If Date.TryParse(dDate, Temp_Date) Then
        Converted_Date = Temp_Date
    Else
        Converted_Date = Nothing
    End If

    ' Standard date parsing function has failed, try some other formats
    If IsNothing(Converted_Date) Then
        If Date.TryParseExact(dDate, formats, enUK, DateTimeStyles.None, Temp_Date) Then
            Converted_Date = Temp_Date
        Else
            Converted_Date = Nothing
        End If
    End If

    ' Conversion has failed
    Return Converted_Date

End Function

TryParse関数とTryParseExact関数はどちらも、変換が失敗したことを示すfalseを返します。誰かが何が起こっているのか知っていますか?または、さらに良いことに、日時文字列を正常に変換するコードをいくつか用意します。なぜこれが機能しないのか誰かが知っていますか

4

1 に答える 1

2

間違ったフォーマット文字列を使用しています。これはf#の例ですが、一般的なアイデアを得る必要があります:-)

open System
open System.Globalization

let main argv = 
    let date = "Thu Sep 27 2012 14:21:42 GMT+0100 (BST)"
    let dateparsed = DateTime.ParseExact(date, "ddd MMM dd yyyy HH:mm:ss 'GMT'zzzz '(BST)'", CultureInfo.InvariantCulture)
    printfn "%A" dateparsed
    0

それが役立つことを願っています

mz

于 2013-03-11T12:11:59.940 に答える