Я привык использовать .NET Framework DateTimeOffset
для получения Unix-секунд.
PS> ([datetimeoffset] '2020-01-01').ToUnixTimeSeconds()
1577854800
Но я пишу сценарий PowerShell и подумал, что постараюсь быть как можно более "идиоматичным". Казалось, что Get-Date
добьется цели, но результаты отличаются.
PS> Get-Date -Date '2020-01-01' -UFormat %s
1577836800
Кажется, что Get-Date
является синонимом DateTime
, по умолчанию используется мой местный часовой пояс. Единственный способ получить дату UTC из Get-Date
- это другой вызов метода .NET.
PS> (Get-Date -Date '2020-01-01').ToUniversalTime()
А теперь, чтобы получить Unix-секунды, я снова могу пайпить?
PS> (Get-Date -Date '2020-01-01').ToUniversalTime() | Get-Date -UFormat %s
Это ужасно много труб, потому что я думал, что это будет простое выражение ... какие-нибудь другие идеи?