在批处理脚本中将日期转换为毫秒

时间:2014-03-13 12:43:41

标签: windows batch-file

如何在currentdate前30天找到日期? 如何将日期转换为毫秒? 使用批处理脚本。

请帮我解决这个问题。谢谢......

2 个答案:

答案 0 :(得分:0)

这是批处理文件中的VBS脚本。

:: date 30 days ago
@echo off
set day=-30
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "date-then=%yyyy%-%mm%-%dd%"

echo The date then was "%date-then%"
pause

答案 1 :(得分:0)

使用本机Windows批处理命令很难处理日期和时间,尤其是在处理大数字时,可以找到自1970-01-01 00:00:00.000 UTC以来以毫秒表示的时间戳。

正如foxidrive所证明的那样,使用VBScript(或JScript)计算很容易。

我写了一个hybrid JScript/batch utility called getTimestamp.bat,这使得在批处理脚本中处理日期和时间变得非常容易。该实用程序是纯脚本,可​​以从XP开始在任何现代Windows机器上本机运行。完整文档嵌入在实用程序中。

在今天(当地时间)前30天获取日期并将其存储在DT变量中

call getTimestamp -od -30 -f {yyyy}-{mm}-{dd} -r DT

您没有指定日期格式。该实用程序几乎支持您可能想要的任何格式。

获取当前日期/时间,表示为自1970-01-01 00:00:00.000 UTC以来的毫秒数并存储在TS变量中

call getTimestamp -f {ums} -r TS

注意:我怀疑JScript时间计算可能无法计算闰秒。因此,该值可能不是100%准确。

如果您想要今天30天前的午夜(当地时间)的时间戳,则表示为自1970-01-01 00:00:00.000 UTC以来的毫秒数并存储在TS变量< /强>

call getTimestamp -od -30 -f {mm}/{dd}/{yyyy} -r DT
call getTimestamp -d '%DT%' -F {ums} -r TS

该实用程序有 许多 选项。从命令提示符输入getTimestamp -?以获取完整文档。