我试图从其他地方使用的日期减去一定的秒数。但是,我需要它是24小时格式。这是我的功能:
Function getDateTime(df) 'timediff
getDateTime = DateAdd("S",0 - df,Now)
End Function
它必须采用10/5/2015 13:58:32
而不是10/5/2015 1:58:32 PM
是否有一种简单的方法来转换它,还是我需要进行字符串评估和操作? (if hrs > 12 { etc... })
答案 0 :(得分:1)
这是我的替换功能:
Function getDateTime(df) 'timediff in seconds
getDateTime = FormatDateTime(DateAdd("S",0 - df,Now),vbGeneralDate)
getDateTime = Year(getDateTime) & "-" & Month(getDateTime) & "-" & Day(getDateTime)_
& " " & Hour(getDateTime) & ":" & Minute(getDateTime) & ":" & (Second(getDateTime))
End Function
感谢@Lankymart指出我忽略的简单事实。随意发布,我会接受你的回答。
答案 1 :(得分:1)
在another question中解决此问题。
当您看到特定格式的运行时,VBScript日期/时间存储为整数,该格式只是运行时推断该日期/时间变量的默认字符串表示形式(通常使用计算机区域设置)。
Function FormatDate(df)
FormatDate = Right("00" & Day(df), 2) & _
"/" & Right("00" & Month(df), 2) & "/" & Year(df) & _
" " & Right("00" & Hour(df), 2) & ":" & _
Right("00" & Minute(df), 2) & ":" & Right("00" & Second(df), 2)
End Function
当您有日期格式Left(MonthName(Month(df)), 3)
(例如)时,您可以使用like 04/04/2015
来避免日期格式问题(只要DBMS支持它)
答案 2 :(得分:0)
好吧,任何编程语言(或DBMS)的日期都是值。它们在IDE,脚本工具中的显示方式或从DBMS查询时的方式无关紧要。它们实际上存储在同一个地方#34;
如果您希望它们以某种方式显示报告,UI等,则必须将它们转换为具有特定格式的字符串。同样,重申一下,日期只是存储在内存中的数值。
当你说"它需要的格式为10/5/2015 13:58:32而不是10/5/2015 1:58:32 PM",后一个值只是调试器如何显示它(最有可能使用默认日期格式的ToString()
调用)。