Дима Яковлев

Как получить метку времени Unix в PowerShell

Если работаете в командной строке Linux, то скорее всего знакомы с командой date и её ключами. Для того, чтобы получить текущую метку времени в формате Unix используется вызов команды date +'%s'. Как быть, если нужна метка времени в PowerShell?

Для получения текущего времени в PowerShell существует командлет Get-Date, работа с которым подробно описана в официальной справке. За форматирование вывода командлета в формате времени Unix отвечает параметр -UFormat.

Результат вызова командлета Get-Date -UFormat %s в PowerShell аналогичен приведённому в начале результату вызова команды date +'%s' в командной строке Linux.

Для упрощения кода скриптов или ускорения ввода, получение текущей метки времени в PowerShell можно оформить в виде простой функции и задать для неё псевдоним:

function Get-Timestamp {
  Get-Date -UFormat %s
}

Set-Alias -Name timestamp -Value Get-Timestamp

В этом примере создаётся функция Get-Timestamp и для неё устанавливается псевдоним timestamp.

Результат выполнения функции Get-Timestamp и её псевдонима timestamp в PowerShell

Если нужна метка времени Unix для времени создания файла или директории, то получить её в PowerShell можно так:

$itemName = '\path\to\item\'
(Get-Item -Path $itemName).CreationTime | Get-Date -UFormat %s