我有一个变量
Dim tt="2008-10-20 10:00:00.0000000"
我想将其更改为日期,
答案 0 :(得分:4)
试试CDATE(tt)
,请参阅http://www.w3schools.com/vbscript/func_cdate.asp。我用了
vbscript cdate
作为Google的关键字。结果更多。
编辑:根据以下评论(我很抱歉混淆),使用
FormatDateTime(date,format)
格式包含以下常量:
(从http://www.w3schools.com/vbscript/func_formatdatetime.asp复制)
答案 1 :(得分:1)
我提出了一个安全的解决方案,只有在转换成功时才会返回结果:
s="2008-10-20 10:00:00.0000000"
On Error Resume Next
d=CDate(Left(s,19))
On Error Goto 0
if not IsEmpty(d) then MsgBox d
尝试使用无效日期或无效格式。结果将为空。
s="2008-02-31 10:00:00"
在相同的上下文中,有必要初始化CData的变量收集结果。我建议将其初始化为Empty。下面的示例显示了这种情况 - 计算字符串数组中的有效日期:
Lines = array("2008-10-20 10:00:00.0000000", "2008-10-20 10:00:00", "", "2008-02-31", "Today", "2017-02-7")
On Error Resume Next
Count=0
for each Line in Lines
d=Empty
d=CDate(Line)
if not IsEmpty(d) then Count=Count+1
next
On Error Goto 0
MsgBox "Number of valid dates is "&Count
正确的答案是2.没有初始化,我们得到5,因为CDate没有对错误做任何事情,所以变量保持循环中最近迭代的值。
答案 2 :(得分:0)
如果不需要你的毫秒,你可以使用以下内容:
<script type="text/vbscript">
s="2008-10-20 10:00:00.0000000"
arr= Split(s, ".")
d=CDate(arr(0))
document.write(d)
</script>
答案 3 :(得分:0)
我相信cdate依赖于本地设置来解析字符串。在许多情况下这并不好。
为避免这种情况,您需要使用 DateSerial()
如果需要,可以将任何时间组件分别添加到结果中。
答案 4 :(得分:0)
此链接(MS CDate page)解释说:
adate = CDate(astring)
将字符串转换为日期对象。对于那里,您可以使用FormatDateTime function
对其进行格式化str = FormatDateTime(Date)
FormatDateTime
函数是“智能” - 如果两者都存在,它将格式化为日期和时间,否则它将以日期或时间中的任何一个格式化。