Вопрос по – Создание объекта DateTime с указанным UTC DateTime в PowerShell
Я пытаюсь создатьDateTime
объект с определенной меткой времени UTC в PowerShell. Какой самый простой способ сделать это?
Я пытался
<code>Get-Date -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern -Date "1970-01-01 00:00:00Z" </code>
но я получаю этот вывод:
<code>1969-12-31 19:00:00Z </code>
Сейчас несколько часов. Где моя ошибка в понимании?
DateTime
ам объект @ создается с правильным временем UTC. Но когда PowerShell распечатывает его, он преобразует его в мою местную культуру и часовой пояс, поэтому разниц
Proof:
$UtcTime = Get-Date -Date "1970-01-01 00:00:00Z"
$UtcTime.ToUniversalTime()
Get-Date
преобразует указанное время UTC в местное время и сохраняет его какdatetime
объект сKind
установлен вLocal
. Он сохраняет правильную физическую точку во времени, но это местное время и будет напечатано по местному времени. Обратите внимание, что это все еще правильный ответ на вопрос. ОП специально не просила о созданииdatetime
объект с добрым UTC. Upvoted.
Florian Winter
(get-date).ToUniversalTime().ToString("yyyyMMddTHHmmssfffffffZ")
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "((get-date).ToUniversalTime()).ToString(\"yyyy-MM-ddTHH:mm:ss+0000\")"
Jay Taylor
.ToString("yyyyMMddTHHmmssfffffffZ")
например 14:00:00 должно стать .. 140000, поскольку UTC не зависит от часового пояс
Anders Rask
$time = [DateTime]::UtcNow | get-date -Format "yyyy-MM-ddTHH:mm:ssZ"
[DateTime]::UtcNow.ToString('u')
лучший выбор, как теMM
а такжеmm
может быть с ошибкой. Я подал такую ошибку в систему в другой месяц.
LosManos
PS C: \ IT \ s3> $ timestamp
Среда, 18 июля 2018 г., 19:57:
PS C: \ IT \ s3> $ timestamp.kind
Неопределенны
PS C: \ IT \ s3> $ utctimestamp = [DateTime] :: SpecifyKind ($ timestamp, [DateTimeKind] :: Utc)
PS C: \ IT \ s3> $ utctimestamp
Среда, 18 июля 2018 г., 19:57:
PS C: \ IT \ s3> $ utctimestamp.kind
Универсальное глобальное врем
верно? PowerShell просто вызывает метод ToUniversalTime. Отhttp: //msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.asp
The Coordinated Universal Time (UTC) is equal to the local time minus the
UTC offset. For more information about the UTC offset, see TimeZone.GetUtcOffset.
The conversion also takes into account the daylight saving time rule that applies
to the time represented by the current DateTime object.