Как я могу получить время UTC в пакетном файле (или MSDOS)?вместо системного формата времени - PullRequest
1 голос
/ 10 августа 2011

как узнать время UTC в пакетном файле (или в msdos)? вместо системного формата времени

не похоже на дд / ммм / гггг

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Не занимаясь собственной математикой свиданий, в чистом виде не будет хорошего способа.Единственная доступная функция времени - time /t или %time%, и они не предоставляют никакой информации о местонахождении, поэтому вам, в конечном счете, придется также запрашивать реестр.

Powershell может это сделать, однако,и вы можете написать крошечный скрипт, чтобы получить необходимую информацию и передать ее в ваш пакетный файл.

Get-Date -date (Get-Date).ToUniversalTime()-uformat %y%m%d%H%M%j

(из обсуждения здесь: http://www.powershellcommunity.org/Forums/tabid/54/aft/4361/Default.aspx)

Вы можете сделать то же самоеИдея с JavaScript или VBS.

1 голос
/ 11 августа 2011

Если вы просто хотите преобразовать дату в ее юлианский номер дня, начиная с 1961 года (когда UTC был официально инициирован, то есть день 0 по UTC 00:00:00 был первым моментом 1 января 1961 года), вы можетеиспользуйте эти пакетные файлы.

DATETOJULIAN.BAT:

@ECHO OFF
REM GET MONTH, DAY, YEAR VALUES
FOR /F "TOKENS=1-3 DELIMS=/" %%A IN ("%1") DO SET MM=%%A& SET DD=%%B& SET YY=%%C
REM ELIMINATE LEFT ZEROS
SET /A DD=10%DD% %% 100, MM=10%MM% %% 100
REM CALCULATE JULIAN DAY NUMBER
IF %MM% LSS 3 SET /A MM+=12, YY-=1
SET /A A=YY/100, B=A/4, C=2-A+B, E=36525*(YY+4716)/100, F=306*(MM+1)/10, JDN=C+DD+E+F-1524

DATETOUTC.BAT:

@ECHO OFF
CALL DATETOJULIAN %1
SET UTCDAY=%JDN%
CALL DATETOJULIAN 1/1/1961
SET /A UTCDAY-=JDN
ECHO %UTCDAY%

Например:

DATETOUTC %DATE%
18484

Ссылка: http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html

0 голосов
/ 28 января 2012

Это просто, но я использую это:

'Create a string to be used for file name that is the current date time stamp
dtmYear = Year(Date)

dtmMonth = Month(Date)
If Len(dtmMonth) = 1 Then dtmMonth = "0" & dtmMonth

dtmDay = Day(Date)
If Len(dtmDay) = 1 Then dtmDay = "0" & dtmDay

dtmHour = Hour(Now)
If Len(dtmHour) = 1 Then dtmHour = "0" & dtmHour

dtmMinute = Minute(Now)
If Len(dtmMinute) = 1 Then dtmMinute = "0" & dtmMinute

dtmSecond = Second(Now)
If Len(dtmSecond) = 1 Then dtmSecond = "0" & dtmSecond

strUTCDate = dtmYear & dtmMonth & dtmDay & dtmHour & dtmMinute & dtmSecond
...