如何从查询字符串将一种日期/时间格式转换为另一种格式?

时间:2015-06-22 13:00:50

标签: datetime vbscript asp-classic

我在查询字符串中收到“2015年8月22日10:55”,我想将其转换为“2015-08-22 10:55”。

到目前为止,我有这个:

 datum=request.querystring("tid")
 response.write datum ----this writes out August 22, 2015 10:55
 datum=Cstr(datum)

 DateVar = datevalue(datum)

 NewDateVar = year(DateVar) & "-" & month(DateVar) & "-" & day(DateVar) 
 NewTimeVar=timevalue(datum)

 newdatum = NewDateVar & " " & NewTimeVar

但现在我在DateVar = datevalue(datum)上遇到了类型错配错误。

如果我使用datum="August 22, 2015 10:55"进行测试,则可行。

3 个答案:

答案 0 :(得分:1)

拼写出来:

>> s = "August 22, 2015 10:55"
>> d = CDate(s)
>> WScript.Echo TypeName(d), d
>>
Date 22.08.2015 10:55:00 <-- german locale!

添加了:

要获得所需的格式,您可以使用here所述的策略。

答案 1 :(得分:0)

DateVar = datevalue("August 22, 2015 10:55")
NewDateVar = year(DateVar) & "-" & month(DateVar) & "-" & day(DateVar) & "-" & time(DateVar)

答案 2 :(得分:0)

经典ASP倾向于使用美国日期格式,地狱或高水。但是,以您希望的任何方式格式化显示(或传递到数据库)的日期都很容易。

以下内容将使用0填充任何一位数值。如果您不需要,则只使用普通函数,而不使用Right()

Dim datum, mm, dd, yyyy, hh, nn, fdatum
datum = Request.Querystring("tid")
If IsDate(datum) Then
    datum = CDate(datum)
    mm = Right(100 + Month(datum),2)
    dd = Right(100 + Day(datum),2)
    yyyy = Year(datum)
    hh = Right(100 + Hour(datum),2)
    nn = Right(100 + Minute(datum),2)
    fdatum = yyyy & "-" & mm & "-" & dd & " " & hh & ":" & nn
Else
    fdatum = datum '- or whatever fallback value you want
End If