Batch file 如何从bat文件更改显示的时区
我正在运行一个小的.bat脚本,将系统时间输出到一个文本文件,然后导入OBS。但是,它所用于的项目需要以中部时间而不是东部时间(我的时区)显示时间。是否可以在不更改计算机时钟时区的情况下更改输出时区Batch file 如何从bat文件更改显示的时区,batch-file,time,output,Batch File,Time,Output,我正在运行一个小的.bat脚本,将系统时间输出到一个文本文件,然后导入OBS。但是,它所用于的项目需要以中部时间而不是东部时间(我的时区)显示时间。是否可以在不更改计算机时钟时区的情况下更改输出时区 :循环 time/T>C:\Users\Brennan\Desktop\time\time.txt 时间/吨 超时/t 15 转到循环区域可以通过tzutil设置,但这是一个全局(系统范围)更改--setlocal命令不会对其进行本地化。通过保存和恢复所需区域,以下操作将临时更改该区域: for
:循环
time/T>C:\Users\Brennan\Desktop\time\time.txt
时间/吨
超时/t 15
转到循环
区域可以通过tzutil设置,但这是一个全局(系统范围)更改--setlocal命令不会对其进行本地化。通过保存和恢复所需区域,以下操作将临时更改该区域:
for /f "delims=" %%z in ('tzutil /g') do (
rem set desired zone
tzutil /s "Central Standard Time"
time /T > C:\Users\Brennan\Desktop\time\time.txt
rem restore original zone
tzutil /s "%%z"
)
注意,更改是系统范围内的,因此tzutil调用与系统时钟之间的周期将更改。如果在tzutil调用之间中止脚本,则系统时区将保持更改。命令
wmic path win32\u utctime get
输出UTF-16 Little-Endian编码:
Day DayOfWeek Hour Milliseconds Minute Month Quarter Second WeekInMonth Year
16 0 11 12 7 3 19 4 2017
此输出可通过命令FOR进行解析,并连接到国际日期/时间格式的UTC日期/时间字符串YYYY-MM-DD HH:MM:ss
wit命令SET
@echo off
for /F "skip=1 tokens=1,3,4,5,7,9" %%A in ('%SystemRoot%\System32\wbem\wmic.exe path win32_utctime get') do (
set "Day=0%%A"
set "Hour=0%%B"
set "Minute=0%%C"
set "Month=0%%D"
set "Second=0%%E"
set "Year=%%F"
goto BuildDateTime
)
:BuildDateTime
set "DateTimeUTC=%Year%-%Month:~-2%-%Day:~-2% %Hour:~-2%:%Minute:~-2%:%Second:~-2%"
echo UTC date/time is: %DateTimeUTC%
上述发布数据的批处理文件的输出为:
UTC date/time is: 2017-07-16 11:12:19
还可以修改代码以获得UTC时间:
@echo off
for /F "skip=1 tokens=3,4,7" %%A in ('%SystemRoot%\System32\wbem\wmic.exe path win32_utctime get') do (
set "Hour=0%%A"
set "Minute=0%%B"
set "Second=0%%C"
goto BuildTime
)
:BuildTime
set "TimeUTC=%Hour:~-2%:%Minute:~-2%:%Second:~-2%"
echo UTC time is: %TimeUTC%
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面
echo/?
获取/?
设置/?
wmic/?
wmic路径/?
wmic路径win32\u utctime/?
wmic路径win32\u utctime get/?