Для получения даты и времени в 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
Как видите, вариантов вывода море, есть из чего выбрать. И в завершение напомню, что формат вывода времени\даты зависит от региональных настроек, изменить которые можно из панели управления.
На этом все, а в следующий раз рассмотрим варианты преобразования текстовых строк в формат даты\время.