Javascript日期转换为VB.net DateTime

时间:2013-03-11 11:24:14

标签: javascript vb.net datetime

我试图将作为字符串传递的日期时间值从某些Javascript代码转换为VB.net日期时间对象。

这就是我试图转换的内容

  

Thu Sep 27 2012 14:21:42 GMT + 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指示。有谁知道发生了什么?或者更好的是,有一些代码可以成功转换日期时间字符串。 有谁知道为什么这不起作用

1 个答案:

答案 0 :(得分: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