2012-01-03 84 views

回答

4

尝试CDATE(tt)看到http://www.w3schools.com/vbscript/func_cdate.asp。我用

的VBScript CDATE

如在谷歌的关键字。有更多的结果。

编辑:基于下面的评论(我混合了对不起),使用

FormatDateTime(date,format) 

格式包含以下常量:

  • 0 = vbGeneralDate - 默认。返回日期:mm/dd/yy和时间,如果指定了 :hh:mm:ss PM/AM。
  • 1 = vbLongDate - 返回日期:平日,MONTHNAME,年
  • 2 = vbShortDate - 返回日期:MM/DD/YY
  • 3 = vbLongTime - 返回时间:HH:MM:SS PM/AM
  • 4 = vbShortTime - 返回时间:HH:MM

(从http://www.w3schools.com/vbscript/func_formatdatetime.asp复制)

+0

感谢您的回放,但我想将其更改为日期时间不仅日期。 – 2012-01-03 10:03:09

+0

看到我的编辑帖子。 – reporter 2012-01-03 11:34:56

+0

注意:链接看起来已经死了(并且它通常被认为是w3schools链接通常比其他链接更不重要) – 2016-01-31 15:47:15

0

如果不需要你毫秒,你可以使用以下:

<script type="text/vbscript"> 
    s="2008-10-20 10:00:00.0000000" 
    arr= Split(s, ".") 
    d=CDate(arr(0)) 
    document.write(d) 
</script> 
0

我相信cdate依赖于本地设置来解析字符串。这在许多情况下都不好。

为了避免这种情况,你需要使用 DateSerial()

,如果需要添加任何时间组件结果分开。

0

此链接,(MS CDate page)解释说:

adate = CDate(astring) 

将字符串转换成日期对象。因为在那里,你可以用FormatDateTime function

str = FormatDateTime(Date) 

FormatDateTime功能是“智能”格式化 - 它会为日期和时间格式,如果两者都存在,否则会与哪个日期或时间的格式是目前。

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的变量收集结果。我建议将它初始化为空。下面的示例显示了这种情况 - 在一个字符串数组计数有效日期:

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所以变量从最近的迭代中保持值不做任何错误在循环。

相关问题