Заметки о Windows и других программных продуктах Microsoft...

Форматы времени и даты в PowerShell

Форматы времени и даты в PowerShell

Для получения даты и времени в PowerShell существует командлет Get-Date. Выполнив команду Get-Date, мы получим текущее время и дату в полном формате. Вот так выглядит стандартный вывод даты в английском (US) стандарте:

вывод даты в формате по умолчанию

 

В принципе вывод достаточно информативен, но иногда может понадобиться получить дату в формате, отличном от дефолтного. Нет проблем, при необходимости формат вывода можно легко изменить множеством различных способов. Наиболее простой — это использовать стандартные форматы даты и времени, приведенные в таблице.

Параметр Формат времени\даты
Пример вывода
d Короткий формат даты (ShortDatePattern) 7/2/2014
D Длинный формат даты (LongDatePattern) Wednesday, July 2, 2014
f Полная дата и время (long date and short time) Wednesday, July 2, 2014 12:50 AM
F Полная дата и время (long date and long time) Wednesday, July 2, 2014 12:50:49 AM
g General (short date and short time) 7/2/2014 12:50 AM
G General (short date and long time) 7/2/2014 12:50:49 AM
m, M День и месяц (MonthDayPattern) July 2
o Round-trip date/time pattern 2014-07-02T12:50:49.3494995+04:00
r, R RFC1123Pattern Wed, 02 Jul 2014 12:50:49 GMT
s SortableDateTimePattern (based on ISO 8601) 2014-07-02T12:50:49
t Короткий формат времени (ShortTimePattern) 12:50 AM
T Длинный формат времени (LongTimePattern) 12:50:49 AM
u Универсальный формат (UniversalSortableDateTimePattern) 2014-07-02 11:21:50Z
U Полная дата и время (long date and long time) в UTC Wednesday, July 1, 2014 08:50:52 PM
y, Y Год и месяц (YearMonthPattern) July, 2014

 

Для использования формата надо указать нужное значение с помощью параметра Format. Например так мы получим дату в коротком варианте:

Get-Date -Format d

Так выведем только год и месяц:

Get-Date -Format y

Или только время:

Get-Date -Format T

А так посмотрим дату\время по UTC:

Get-Date -Format U

стандартные форматы вывода даты и времени

 

Если же стандартных форматов недостаточно, то вывод даты\времени можно кастомизировать с помощью пользовательских параметров. Их довольно много, вот наиболее употребимые.

Параметр Описание
d, %d День месяца в цифровом формате (1-31), без добавления лидирующего нуля.
dd День месяца в цифровом формате (01-31), с добавлением лидирующего нуля.
ddd Название дня недели, короткий вариант (напр. Sun).
dddd Название дня недели, полный вариант.
h, %h Часы в 12-часовом варианте (1-12) без добавления лидирующего нуля.
hh Часы в 12-часовом варианте (01-12) с добавлением лидирующего нуля.
H, %H Часы в 24-часовом варианте (0-23) без добавления лидирующего нуля.
HH Часы в 24-часовом варианте (00-23) с добавлением лидирующего нуля.
m, %m Минуты, без добавления лидирующего нуля.
mm Минуты, с добавлением лидирующего нуля.
M, %M Месяц в цифровом формате (1-12) без добавления лидирующего нуля.
MM Месяц в цифровом формате (01-12) с добавлением лидирующего нуля.
MMM Название месяца, сокращенный вариант (напр. Jul).
MMMM Название месяца, полный вариант.
s, %s Секунды, без добавления лидирующего нуля.
ss Секунды, с добавлением лидирующего нуля.
f,ff,fff,ffff Миллисекунды.
t, %t Переключатель AM/PM (первая буква).
tt Переключатель AM/PM.
y, %y Год без указания тысячелетия. Если год меньше 10, лидирующий ноль не добавляется (напр. 8).
yy Год без указания тысячелетия. Если год меньше 10, лидирующий ноль добавляется (напр. 08).
yyyy Год, полный формат.
z, %z Часовая зона, короткий формат (напр. +4).
zz Часовая зона, короткий формат (напр. +04).
zzzz Часовая зона, полный формат (напр. +04:00).
g Эра, до\после НЭ.

 

Знак процента (%) в указании параметра следует добавлять, если параметр используется сам по себе, а не в сочетании с другими параметрами.

Если необходимо добавить в вывод какую либо текстовую информацию, то можно использовать обратный слэш (\). Поставленный в начале он позволяет интерпретировать символы не как параметры, а как обычные буквы.  Если же вы хотите использовать слэш как разделитель, то его надо экранировать, используя двойной слэш (\\).

Пользовательские настройки позволяют получить дату\время в любом удобном виде, например так:

Get-Date -Format dd.MM.yyyy

Или так:

Get-Date -Format ″dd MMMM yyyy HH:mm:ss″

И даже так:

Get-Date -Format ″dd MMMM yyyy HH:mm:ss.ffff zzzz g″

пользовательские настройки даты\времени

 

Но и это не все. У командлета Get-Date есть еще один параметр UFormat, для вывода даты в Unix-формате.

Параметр Описание
с Дата и время, с сокращениями  (Wed Jul 2 12:50:49 2014)
D Короткий формат даты (7/2/2014)
С Век (21).
у, g Год в двузначном формате (14)
Y, G Год в четырехзначном формате (2014)
b, h Месяц, короткое название (Jul)
B Месяц, полное название (July)
m Номер месяца в двузначном формате (07)
U, W Номер недели в году (00-52)
V Номер недели в году (01-53)
a День недели, сокращенное название (Sun)
A День недели, полное название (Sundy)
u, w Номер дня недели, начиная с понедельника (1-7)
d День месяца в двузначном формате (07).
e День месяца в формате пробел+однозначное число ( 07).
j Номер дня в году (1-366).
p Переключатель AM\PM.
r Время в 12-часовом формате
R Время в 24-часовом формате, без секунд
T, X Время в 24-часовом формате, полный вариант
Z Смещение относительно UTC (+04).
H, k Час в 24-часовом формате (00-23)
I, l Час в 12-часовом формате (01-12)
 M  Минуты (01-60)
 S  Секунды (01-60)
 s  Число секунд, прошедших с 1 января 1970 года

 

При использовании UFormat перед каждым значением необходимо ставить знак %, например так:

Get-Date -UFormat ″%A %d %B %r″

UFormat интересен тем, что можем получить довольно нестандартные варианты, например номер дня:

Get-Date -UFormat %j

Или недели в году:

Get-Date -UFormat %j

И даже количество времени в секундах, прошедшее с 00 часов 00 минут 00 секунд 1 января 1970 года (начало отсчета времени для UNIX-систем):

Get-Date -UFormat %s

пользовательские настройки даты\времени в стиле Unix

 

Как видите, вариантов вывода море, есть из чего выбрать. И в завершение напомню, что формат вывода времени\даты зависит от региональных настроек, изменить которые можно из панели управления.

региональные настройки

 

На этом все, а в следующий раз рассмотрим варианты преобразования текстовых строк в формат даты\время.

 
 
Комментарии

Пока нет комментариев.