Форматировать время Unix, используя Get-Date -UFormat - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь преобразовать время эпохи Unix в читаемый формат. Смотрите пример кода:

# First convert time to Unix time seconds. 
$time = Get-Date -Hour 12 - Minute 30 -Second 0
([datetimeoffset]$time).ToUnixTimeSeconds()
1552912200

Все ок. Сейчас я пытаюсь отформатировать время наоборот:

Get-Date 1552912200 -UFormat %R
00:02

Это не правильно. Почему вывод 00:02? Когда я ожидаю 12:30

1 Ответ

2 голосов
/ 18 марта 2019

Поскольку Get-Date ожидает объект DateTime:

Get-Help Get-Date
# Get-Date [[-Date] <DateTime>] ...

Таким образом, значение 1552912200 неявно преобразуется в DateTime, что приводит к 01.01.0001 00:02:35.Вот почему вы получаете 00:02

Вам необходимо передать DateTime объект:

$datetime = [DateTimeOffset]::FromUnixTimeSeconds(1552912200).DateTime
Get-Date $datetime -UFormat '%R'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...