Get-Date
Получает текущие значение даты и времени.
Get-Date [-Format <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>] Get-Date [-UFormat <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]
Командлет Get-Date получает объект DateTime, содержащий текущую или заданную дату. Он позволяет выводить дату и время в различных форматах Windows и UNIX. С помощью командлета Get-Date можно создать текстовую строку с датой или временем, а затем передать ее другим командлетам или программам.
-Date <DateTime>
Задает дату и время. По умолчанию команда Get-Date возвращает текущие значения системной даты и времени.
Введите дату в формате, определенном локалью системы, например dd-MM-yyyy (Немецкий [Германия]) или MM/dd/yyyy (Английский [США]).
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Day <int>
Задает отображаемое значение числа месяца. Введите значение от 1 до 31. Это значение будет отображаться вместо текущего числа.
Если указать значение, превышающее число дней в месяце, оболочка Windows PowerShell прибавит соответствующее значение к количеству дней в месяце и выведет полученный результат. Например, результатом выполнения команды «get-date -month 2 -day 31» будет «3 марта», а не «31 февраля».
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-DisplayHint
<DisplayHintType>
Определяет, какие элементы даты и времени будут отображаться.
Допустимые значения:
— Date: отображается только дата;
— Time: отображается только время;
— DateTime: отображаются дата и время.
По умолчанию используется значение DateTime.
Этот параметр не влияет на объект DateTime, возвращаемый командой Get-Date.
Обязательно? |
false |
Позиция? |
|
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Format <string>
Отображает дату и время в формате Microsoft .NET Framework, указанном описателем формата. Введите описатель формата. Список доступных описателей формата см. в разделе «DateTimeFormatInfo Class» библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=143638.
При использовании параметра Format оболочка Windows PowerShell возвращает только те свойства объекта DateTime, которые требуются для отображения даты в указанном формате. В результате некоторые свойства и методы объектов DateTime могут оказаться недоступными.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Hour <int>
Задает отображаемое значение часа. Введите значение от 1 до 23. Это значение будет отображаться вместо текущего часа.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Minute <int>
Задает отображаемое значение минуты. Введите значение от 1 до 59. Это значение будет отображаться вместо текущей минуты.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Month <int>
Задает отображаемое значение месяца. Введите значение от 1 до 12. Это значение будет отображаться вместо текущего месяца.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Second <int>
Задает отображаемое значение секунды. Введите значение от 1 до 59. Это значение будет отображаться вместо текущей секунды.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-UFormat <string>
Отображает дату и время в формате UNIX. Список описателей формата см. в разделе «Примечания».
При использовании параметра UFormat оболочка Windows PowerShell возвращает только те свойства объекта DateTime, которые требуются для отображения даты в указанном формате. В результате некоторые свойства и методы объектов DateTime могут оказаться недоступными.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Year <int>
Задает отображаемое значение года. Введите значение от 1 до 9999. Это значение будет отображаться вместо текущего года.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
None Передать входные данные этому командлету по конвейеру невозможно. |
Выходные данные |
System.DateTime или System.String При использовании параметров Format и UFormat выходной объект — System.String. |
По умолчанию дата и время отображаются в определенном локалью системы полном формате даты и полном формате времени.
При передаче даты по конвейеру командлету, принимающий строковые значения, например командлету Add-Content, оболочка Windows PowerShell преобразует объект DateTime в строку, прежде чем добавить его в файл. По умолчанию метод ToString() использует короткий формат даты и полный формат времени. Чтобы указать другой формат, воспользуйтесь параметрами Format или UFormat командлета Get-Date.
Значения Uformat:
Параметр UFormat может иметь следующие значения. Формат команды таков:
get-date -uformat %<значение>
Например:
get-date -uformat %d
Дата и время:
Дата и время — полный формат
(по умолчанию) (Пятница, 16 июня 2006 г. 10:31:27)
c Дата и время — сокращенный формат (Пт 16 июн 2006 10:31:27)
Дата:
D Дата в формате мм/дд/гг (06/14/06)
x Дата в стандартном формате локали (09/12/07 в случае американского варианта английского стандарта)
Год:
C Век (в случае 2006 года — 20)
Y Год в четырехзначном формате (2006)
y Год в двузначном формате (06)
G То же, что и «Y»
g То же, что и «y»
Месяц:
b Сокращенное название месяца (Янв)
B Полное название месяца (Январь)
h То же, что и «b»
m Номер месяца (06)
Неделя:
W Неделя года (00–52)
V Неделя года (01–53)
U То же, что и «W»
День:
a Сокращенное название дня недели (Пн)
A Полное название дня недели (Понедельник)
u Номер дня недели (понедельник = 1)
d День месяца — двузначный формат (05)
e День месяца — однозначное число, которому предшествует пробел ( 5)
j День года (1–366)
w То же, что и «u»
Время:
p AM или PM (до полудня или после полудня)
r Время в 12-часовом формате (09:15:36 AM)
R Время в 24-часовом формате без секунд (17:45)
T Время в 24-часовом формате (17:45:52)
X То же, что и «T»
Z Сдвиг часового пояса от всеобщего скоординированного времени (UTC) (-07)
Час:
H Час в 24-часовом формате (17)
I Час в 12-часовом формате (05)
k То же, что и «H»
l То же, что и «I» («L» в нижнем регистре)
Минуты и секунды:
M Минуты (35)
S Секунды (05)
s Число секунд, прошедших с 00 часов 00 минут 00 секунд 1 января 1970 года (1150451174.95705)
Специальные знаки:
n Знак новой строки (\n)
t Знак табуляции (\t)
Как получить нормальную дату у lastLogon, lastLogonTimestamp, badPasswordTime
Добрый день! Уважаемые читатели и гости одного из крупнейших IT порталов в рунете по компьютерным технологиям Pyatilistnik.oeg. В прошлый раз я вам подробно рассказал, что такое WDS сервер, как он может вам помочь вашей повседневной жизни и с какими сложностями вы можете столкнуться. Сегодня мы с вами научимся конвертировать значения из атрибутов lastLogon, lastLogonTimestamp, badPasswordTime в нормальный, привычный вид 13.02.2020 9:44:57.
Описание задачи
Когда у вас есть среда Active Directory, то вы со 100% вероятностью будите использовать различные сценарии PowerShell, по получению разных данных, например «Поиск компьютеров по операционной системе» или «Поиск неактивных компьютеров в AD». В ваших отчетах очень часто могут быть задействованы атрибуты Active Directory:
- lastLogon
- lastLogonTimestamp
- badPasswordTime
Атрибуты безусловно полезные, но есть одно но, они изначально выводятся в очень непривычном формате дат, например 132181188021882296. Приведу вам пример простого скрипта, где я получаю список пользователей по атрибутам:
- SamAccountName
- CN
- Modified
- Enabled
- lastLogon
- LastLogonDate
- lastLogonTimestamp
- DistinguishedName
Get-ADUser -SearchBase ‘DC=root,DC=Pyatilistnik,DC=org’ -filter * -Properties SamAccountName, CN, Modified, Enabled, DistinguishedName, lastLogon, LastLogonDate, lastLogonTimestamp `
| Select SamAccountName, CN, Modified, Enabled, lastLogon, LastLogonDate, lastLogonTimestamp, DistinguishedName | FT
Вы можете заметить, что lastLogon и lastLogonTimestamp имеют значения даты в виде простого набора цифр, по которому очень сложно понять, что за дата.
В то же время если вы откроете оснастку «Active Directory — Пользователи и компьютеры», то вы увидите, что у моего тестового пользователя в атрибутах lastLogon, lastLogonTimestamp, badPasswordTime стоят нормальные и привычные глазу значения даты в виде 12.02.2020 19:15:34 RTZ 2 (зима), но если зайти в редактирование, то там будет просто набор последовательных цифр.
Как преобразовать системную дату в календарную через PowerShell
Такой формат даты 132181188021882296 называется системный и он измеряется в тиках по 100 наносекунд, отчет которых идет от 1 января 1601 00:00: 00 UT, в таком виде оно отображается и в атрибутах Active Directory.
https://en.wikipedia.org/wiki/System_time
Мы же привыкли к календарному виду, где есть четко выраженная дата и время 21.02.2020 12:17:31. Ниже я вас научу, как вы можете через PowerShell преобразовывать системное время в календарное.
Давайте я в качестве теста возьму значение из атрибута lastLogon (132259977349862572). Откройте оснастку PowerShell и введите;
[datetime]::FromFileTime(«132259977349862572»)
В итоге я вижу в календарном виде, что пользователь Барбоскин Геннадий последний раз логинился 12 февраля 2020 г. 19:15:34.
Или есть еще старая утилита w32tm.exe. Введите команду:
w32tm.exe /ntte 132259977349862572
Теперь, чтобы нам в скрипте PowerShell, налету преобразовывать системное время в календарное, вы можете воспользоваться конструкцией @{n=’LastLogon’;e={[DateTime]::FromFileTime($_.LastLogon)}} и {n=’badPasswordTime’;e={(Get-Date 1/1/1601).AddDays($_.badPasswordTime)}}. Приведу рабочий пример запроса по пользователям.
Get-ADUser -SearchBase ‘DC=root,DC=Pyatilistnik,DC=org’ -filter * -properties Enabled, SamAccountName, whenCreated, whenChanged, lastLogon, logonCount, badPasswordTime, DistinguishedName `
| Select Name, Enabled, SamAccountName, whenCreated, whenChanged, @{n=’LastLogon’;e={[DateTime]::FromFileTime($_.LastLogon)}}, @{n=’badPasswordTime’;e={(Get-Date 1/1/1601).AddDays($_.badPasswordTime)}}, logonCount, DistinguishedName | Sort-Object Enabled | FT
В итоге я вижу, что столбцы lastLogon, lastLogonTimestamp, badPasswordTime имеют читабельный вид.
У атрибута LastLogon есть особенность, что когда пользователь входит в систему, этот атрибут обновляется на контроллере домена, который предоставлял ТОЛЬКО аутентификацию. Поскольку он обновляется только на одном контроллере домена, это означает, что этот атрибут не реплицируется.
Преобразование 18-ти значных меток времени LDAP в календарный формат online
Я могу вам порекомендовать удобный сервис, который поможет вам перевести системное время в нормальное, одной кнопкой. Зайдите по ссылке:
https://www.epochconverter.com/ldap
На этом у меня все, пусть машины смотрят на дату в виде тиков, а мы люди в привычном нам календарном виде. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
powershell — Смена формата Get-Date` PowerShell
Как сделать Get-Date
, чтобы показать мне этот формат 2018-01-10, и это не показывает время?
В настоящее время я использую Get-Format s
, но он показывает мне время.
0
Hector 10 Янв 2018 в 17:12
3 ответа
Лучший ответ
Другой метод (без получения даты):
[System.DateTime]::Today.ToString("yyyy-MM-dd")
0
Esperento57 10 Янв 2018 в 18:09
Скрипт Powershell для получения даты по запросу
get-date -Format yyyy-MM-dd
Следующий документ даст вам краткое объяснение форматов
https://technet.microsoft.com/en-us/library/ee692801.aspx
0
Narasimha Theja Rao 11 Янв 2018 в 10:17
Есть несколько способов сделать это. Например, вы можете использовать параметр -Format
командлета:
Get-Date -Format 'yyyy-MM-dd'
Вы можете использовать метод ToString()
объекта DateTime
, который создает командлет:
(Get-Date).ToString('yyyy-MM-dd')
Вы также можете использовать оператор формата PowerShell (-f
):
'{0:yyyy-MM-dd}' -f (Get-Date)
3
Ansgar Wiechers 10 Янв 2018 в 14:16
48189311Как изменить время в Windows 10
В этой статье показаны действия, с помощью которых можно изменить время в операционной системе Windows 10.
По умолчанию операционная система Windows 10 автоматически устанавливает время, но при необходимости можно его изменить.
Чтобы изменить время в Windows 10, необходимо войти в систему с правами администратора
Как изменить время в приложении «Параметры Windows»
Чтобы изменить время, откройте приложение «Параметры Windows», для этого нажмите на панели задач кнопку Пуск и далее выберите Параметры или нажмите на клавиатуре сочетание клавиш + I.
В открывшемся окне «Параметры Windows» выберите Время и язык.
Затем выберите вкладку Дата и время, и в правой части окна установите переключатель Установить время автоматически в положение Откл. и нажмите кнопку Изменить дату и время
В окне «Изменить дату и время» установите необходимое время (часы, минуты) и нажмите кнопку Изменить.
Если вы хотите чтобы дата и время устанавливались автоматически, установите переключатель Установить время автоматически в положение Вкл., в этом случае Windows будет автоматически синхронизировать дату и время с серверами времени в интернете.
Также можно быстро получить доступ к настройкам даты и времени в приложении «Параметры Windows», для этого нажмите правой кнопкой мыши на системных часах в панели задач и в открывшемся контекстном меню выберите пункт Настройка даты и времени, и затем выполните необходимые действия показанные выше.
Как изменить время в классической панели управления
Откройте классическую панель управления, в выпадающем списке Просмотр выберите Мелкие значки и нажмите Дата и время.
В открывшемся окне, на вкладке Дата и время нажмите кнопку Изменить дату и время…
Затем в окне «Настройка времени и даты» установите необходимое время (часы, минуты) и нажмите кнопку OK чтобы применить изменения, после этого закройте все остальные окна.
Как изменить время в командной строке
Чтобы изменить время данным способом, запустите командную строку от имени администратора выполните команду следующего вида:
time HH:MM
Вместо HH в команде выше укажите нужный час.
Вместо MM в команде выше укажите минуты.
В данном примере команда выглядит следующим образом:
time 23:59
Как изменить дату и время в консоли Windows PowerShell
Чтобы изменить дату и время данным способом, откройте консоль PowerShell от имени администратора и выполните одну из команд следующего вида:
Установите дату и время используя 24-часовой формат времени.
Set-Date -Date «DD/MM/YYYY hh:mm»
Установите дату и время используя 12-часовой формат времени до полудня AM.
Set-Date -Date «DD/MM/YYYY hh:mm AM»
Установите дату и время используя 12-часовой формат времени после полудня PM.
Set-Date -Date «DD/MM/YYYY hh:mm PM»
- Вместо DD в команде выше укажите нужный день.
- Вместо MM в команде выше укажите нужный месяц.
- Вместо YYYY в команде выше укажите нужный год.
- Вместо hh в команде выше укажите нужный час.
- Вместо mm в команде выше укажите минуты.
В данном примере команда будет выглядеть так:
Set-Date -Date «31/12/2017 23:59»
Теперь, используя рассмотренные выше способы можно легко изменить дату в операционной системе Windows 10.
PowerShell — конвертировать из Active Directory TimeStamp и обратно
Многие, кто работает с Active Directory наверняка замечали довольно своеобразный формат дат в AD, например:
Где 131674282253386100 = Thursday, April 05, 2018 9:57:05 PM, а теперь смотрим в качестве примера вывод PS по любому из выбранных пользователей:
Get-ADUser UserName -Properties cn, LockedOut, pwdLastSet, ` badPwdCount, badPasswordTime, lastLogon, lastLogonTimeStamp, ` whenCreated, whenChanged
Результат:
badPasswordTime : 130271822015564526 CN : UserName Enabled : True ... lastLogon : 130271824649409984 lastLogonTimeStamp : 130271821324223446 LockedOut : False ...
Особенно примечательны результаты по атрибутам:
- badPasswordTime
- lastLogon
- lastLogonTimeStamp
Пробуем конвернтуть lastLogonTimeStamp в человеко-понятный вид используя функцию PS:
[datetime]::FromFileTime(«130271821324223446»)
Результат:
Friday, October 25, 2013 4:42:12 PM
С учетом статуса Enabled : True, это вообще никак не хорошо 🙂 Пробуем на лету конвертнуть нужные нам аттрибуты:
Get-ADUser UserName -Properties Name,LastLogon,lastLogonTimeStamp | Select-Object Name,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}},@{n='lastLogonTimeStamp';e={[DateTime]::FromFileTime($_.lastLogonTimeStamp)}} | Format-Table -Auto
Результат:
Name LastLogon lastLogonTimeStamp ---- --------- ------------------ UserName 10/25/2013 4:47:44 PM 10/25/2013 4:42:12 PM
Как конвертировать дату в AD TimeStamp
Это бывает удобно при использовании LDAP Query например, здесь можно так-же использовать PS:
(Get-Date «1/1/2019»).ToFileTime()
Результат:
Проверяем:
[datetime]::FromFileTime(«131907636000000000»)
Результат:
Tuesday, January 01, 2019 12:00:00 AM
Как бонус — Отключение «старой» учетной записи при помощи PowerShell
Ну и для кучи залочим учетную запись, если ее последний логон был произведен более, чем 180 дней назад, здесь не понадобятся какие-либо конвертации:
Get-ADUser UserName -properties lastlogondate | Where-Object {$_.enabled -eq «true»-and $_.lastlogondate -lt (get-date).adddays(-180)} | Disable-ADAccount
То-же самое можно сделать массово:- используя аргумент
-Filter *
- если необходимо, можно указать месторасположение при помощи аргумента
-SearchBase "OU=MyUsers,DC=Domain,DC=local"
…
Ну уж просто отключать не интересно, так как эти учетные записи лучше поместить в определенную OU:
- для этого можно использовать пайп
| Move-ADObject –TargetPath "OU=Disabled Users, OU=MyUsers,DC=Domain,DC=local"
Ну и как говорится — Hey, scripting guys! Good luck)
:))
⚙ИЗМЕНИТЬ ДАТУ СОЗДАНИЯ ФАЙЛА ИЛИ ПАПКИ С POWERSHELL
Одним из наиболее полезных инструментов операционных систем Windows является PowerShell, который постепенно становится идеальным решением для всей рабочей темы консоли благодаря различным командлетам, которые помогают нам оптимизировать многие задачи в системе.
Одна из этих задач, о которой мало кто знал, — это изменение даты создания файла или папки, что полезно при администрировании, аудите или аналогичных задачах, управлении событиями и т. Д.
Сегодня мы увидим, как на практике выполнить этот процесс с помощью Windows PowerShell.
1. Измените дату создания файла в папке Windows 10 с помощью PowerShellПервый вариант, который мы увидим, это изменить дату создания всех файлов в выбранной папке.
Шаг 1
У нас есть следующие файлы:
Шаг 2
Как мы видим, у них есть дата создания 30 января 2018 года. Если вы не видите дату создания, мы переходим в меню «Просмотр / добавление столбцов» и там выбираем «Дата создания»:
Шаг 3
Чтобы изменить дату всех файлов, мы выполним в PowerShell следующее:
Get-ChildItem D: \ Тесты \ Solvetic | % {$ _. CreationTime = '12 / 12/2017 10:00 '}
Шаг 4
С помощью этого скрипта мы определим путь, где находятся файлы для редактирования, а с помощью переменной «CreationTime» мы устанавливаем месяц, день и год, которые должны быть назначены. Мы запустим это в PowerShell от имени администратора:
Шаг 5
Мы обновляем папку назначения и видим, что дата была отредактирована:
Шаг 1
Следующая альтернатива — редактировать дату создания определенного файла с помощью PowerShell. В этом примере мы отредактируем файл с именем Solvetic на желаемую дату, и для этого мы выполним следующее:
Get-ChildItem D: \ Tests \ Solvetic \ Solvetic.txt | % {$ _. CreationTime = '01 / 01/2018 10:30:40 '}
Шаг 2
В этом случае мы определили, что этот конкретный файл имеет дату создания 1 января 2018 года в 10:30:
Шаг 3
Мы видим изменения в выбранном файле:
Шаг 1
Наконец, если мы хотим изменить дату создания папки, содержащей файлы, мы выполним следующее, сначала мы проверим дату создания папки:
Шаг 2
Теперь мы выполняем следующее:
Get-Item D: \ Tests \ Solvetic | % {$ _. CreationTime = '10 / 01/2018 09:00:00 '}
Шаг 3
Мы увидим соответствующее изменение:
Мы видим, как просто выполнить эту задачу в Windows PowerShell.
изменить на компьютере и ноутбуке, а также поменять формат
Из публикации узнаете, как сменить дату на Windows 10 всеми доступными методами. Дополнительно ознакомитесь с полезной фишкой — отображением дня недели возле текущей даты в трее.
Параметры
В Параметрах можно поменять множество настроек операционной системы, в том числе и дату с временем.
1. Откройте Параметры и посетите раздел «Время и язык».
2. Отключите опцию автоматической установки времени на компьютере соответствующим переключателем, если не хотите, чтобы они синхронизировались с сервером при подключении к интернету. В таком случае необходимо выбрать правильный часовой пояс, чтобы время устанавливалось правильно.
3. Ниже кликните «Изменить».
4. Задайте нужные данные и нажмите «Изменить».
5. Закройте все окна.
Панель управления
1. Откройте Панель управления (проще всего — через меню Пуск).
2. Щелкните по ссылке «Часы, язык и регион…».
3. Выберите подраздел «Дата и время».
4. В первой вкладке кликните по элементу с надписью: «Изменить…».
5. Выберите на календаре нужный день и закройте окно кликом по кнопке «OK».
Панель задач
Наверное, наиболее быстрый способ изменения даты в Виндовс 10.
1. Кликните правой кнопкой мыши по текущей дате возле часов на Панели задач.
2. Во всплывшем контекстном меню активируйте ссылку «Настройка даты и времени».
3. Отключите автоматическую установку времени, после чего жмите ставшую активной кнопку «Изменить».
4. В выпадающих меню выбирайте нужное число, месяц и год и сохраните настройки кнопкой «Изменить».
Командная строка
Все в Windows 10 делается через командную строку.
1. Запустите ее с правами Администратора через поиск или контекстное меню Пуска.
Дайте системе контроля учетных записей право запустить инструмент, если UAC не отключен.
2. Введите команду вида: date 29-10-2019, где первая цифра — это число, вторая — месяц, третья — год.
PowerShell
PowerShell — это функциональное средство для автоматизации обслуживания компьютера. Для новичка выглядит как красочная командная строка с собственным синтаксисом.
1. Запустите PowerShell с привилегиями Администратора.
2. Выполните Get-Data для вывода на дисплей текущей даты.
3. Осуществите одну из нижеприведённых команд в зависимости от формата вывода даты на дисплей:
- Set-Date «DD/MM/YYYY hh:mm» — 24-часовой формат выведения;
- Set-Date «DD/MM/YYYY hh:mm AM» — 12-часовой формат отображения, время до полудня;
- Set-Date «DD/MM/YYYY hh:mm PM» — 12-часовой формат вывода, время после полудня.
Время вводить обязательно, иначе система изменит его на полночь: 00:00:00. Синтаксис команды соблюдайте строго, PowerShell в данном случае чувствителен к регистру: set-data и Set-Data – разные команды.
Вместо MM — месяц — можно вводить как цифры, так и его название кириллицей.
Изменить формат вывода
1. В Параметрах перейдите в подраздел «Время и язык».
2. В открывшемся окне перейдите в раздел «Регион», и щелкните «Изменить формат данных».
3. Укажите удовлетворяющий формат даты для пунктов из списка «Краткая и Полная дата».
То же самое делается и через апплет Панели управления «Часы, язык и регион». В первой вкладке увидите аналогичные выпадающие списки и пример отображения с текущими настройками.
Отображение дня недели
Неудобно каждый раз кликать по календарю, чтобы узнать, какой сегодня день недели. Рассмотрим, как добавить день недели в часы на панели задач.
1. Зайдите в раздел Панели управления «Региональные стандарты», предварительно переключив вид иконок в окне на «Крупные значки».
2. Посетите «Дополнительные параметры».
3. На вкладке «Дата» допишите «ddd» без кавычек в месте, где должен отображаться день недели.
4. Сохраняйте настройки.
Информация в трее примет следующий вид.
Прибегать к помощи посторонних инструментов не станем, разнообразия встроенных средств достаточно для изменения даты в Windows 10.
Шаблон формата | Описание |
---|---|
d,% d | День месяца. Однозначные дни не имеют нуля в начале. Приложение указывает «% d», если шаблон формата не сочетается с другими шаблонами формата. |
dd | День месяца. Однозначные дни начинаются с нуля. |
ddd | Сокращенное название дня недели (строка, зависящая от языка и региональных параметров) |
dddd | Полное название дня недели (строка, зависящая от языка и региональных параметров) |
f,% f | Доля секунды с однозначной точностью.Остальные цифры усечены. Приложение указывает «% f», если шаблон формата не сочетается с другими шаблонами формата. |
ff | Доля секунды с двузначной точностью. Остальные цифры усечены. |
fff | Доля секунды с трехзначной точностью. Остальные цифры усечены. |
ffff | Доля секунды с четырехзначной точностью. Остальные цифры усечены. |
fffff | Доля секунды с пятизначной точностью. Остальные цифры усечены. |
ffffff | Доля секунды с шестизначной точностью. Остальные цифры усечены. |
fffffff | Доля секунды с семизначной точностью. Остальные цифры усечены. |
F,% F | Отображает самый старший разряд доли секунды.Если цифра равна нулю, ничего не отображается. Приложение указывает «% F», если шаблон формата не сочетается с другими шаблонами формата. |
FF | Отображает две старшие цифры доли секунды. Однако конечные нули или две нулевые цифры не отображаются. |
FFF | Отображает три самые значащие цифры доли секунды. Однако конечные нули или три нулевых цифры не отображаются. |
FFFF | Отображает четыре старших разряда доли секунды.Однако конечные нули или четыре нулевых цифры не отображаются. |
FFFFF | Отображает пять наиболее значимых цифр доли секунды. Однако конечные нули или пять нулевых цифр не отображаются. |
FFFFFF | Отображает шесть старших разрядов доли секунды. Однако конечные нули или шесть нулевых цифр не отображаются. |
FFFFFFF | Отображает семь наиболее значимых цифр доли секунды.Однако конечные нули или семь нулевых цифр не отображаются. |
gg | Период или эпоха. Этот шаблон игнорируется, если форматируемая дата не имеет связанной строки периода или эры. |
h,% h | Час в 12-часовом формате. Однозначные часы не имеют нуля в начале. Приложение указывает «% h», если шаблон формата не сочетается с другими шаблонами формата. |
hh | Час в 12-часовом формате.Однозначные часы начинаются с нуля. |
H,% H | Час в 24-часовом формате. Однозначные часы не имеют нуля в начале. Приложение указывает «% H», если шаблон формата не сочетается с другими шаблонами формата. |
HH | Час в 24-часовом формате. Однозначные часы начинаются с нуля. |
K | Различные значения свойства Kind, то есть Local, Utc или Unspecified. |
m,% m | Минута.Однозначные минуты не имеют начального нуля. Приложение указывает «% m», если шаблон формата не сочетается с другими шаблонами формата. |
мм | Минуты. Однозначные минуты начинаются с нуля. |
M,% M | Числовой месяц. Месяцы с однозначными числами не имеют начального нуля. Приложение указывает «% M», если шаблон формата не сочетается с другими шаблонами формата. |
ММ | Числовой месяц.Однозначные месяцы начинаются с нуля. |
MMM | Сокращенное наименование месяца |
MMMM | Полное название месяца |
s,% s | Второе. Однозначные секунды не имеют нуля в начале. Приложение указывает «% s», если шаблон формата не сочетается с другими шаблонами формата. |
SS | Второй. Однозначные секунды начинаются с нуля. |
t,% t | Первый символ в обозначении AM / PM, если таковой имеется. Приложение указывает «% t», если шаблон формата не сочетается с другими шаблонами формата. |
tt | Обозначение AM / PM («ante meridiem» (до полудня) или «post meridiem» (после полудня)), если таковое имеется. Ваше приложение должно использовать этот шаблон формата для языков, для которых необходимо поддерживать различие между AM и PM. Примером является японский язык, для которого обозначения AM и PM различаются вторым символом вместо первого. |
г,% у | Год без века. Если год без века меньше 10, год отображается без нуля в начале. Приложение указывает «% y», если шаблон формата не сочетается с другими шаблонами формата. |
гг | Год без века. Если год без века меньше 10, год отображается с нулем в начале. |
ггг | Год в трехзначном формате.Если год меньше 100, год отображается с нулем в начале. |
гггг | Год в четырех или пятизначном формате (в зависимости от используемого календаря), включая век. Прокладки с ведущими нулями, чтобы получить четыре цифры. Тайский буддийский и корейский календари имеют пятизначный год. Пользователи, выбирающие шаблон «гггг», видят все пять цифр без начальных нулей для календарей с пятью цифрами. Исключение: японский и тайваньский календари всегда ведут себя так, как если бы выбрано «yy». |
ггггг | Год в пятизначном формате. Прокладки с ведущими нулями, чтобы получить пять цифр. Исключение: японский и тайваньский календари всегда ведут себя так, как если бы выбрано «yy». |
гггггг | Год в шести цифрах. Прокладки с ведущими нулями, чтобы получить шесть цифр. Исключение: японский и тайваньский календари всегда ведут себя так, как если бы выбрано «yy». Шаблон может быть продолжен более длинной строкой заполнения «y» с большим количеством ведущих нулей. |
z,% z | Смещение часового пояса («+» или «-» с указанием только часа).Однозначные часы не имеют нуля в начале. Например, стандартное тихоокеанское время — «-8». Приложение указывает «% z», если шаблон формата не сочетается с другими шаблонами формата. |
zz | Смещение часового пояса («+» или «-» с указанием только часа). Однозначные часы начинаются с нуля. Например, стандартное тихоокеанское время — «-08». |
zzz | Полное смещение часового пояса («+» или «-» с последующими часами и минутами). Однозначные часы и минуты имеют ведущие нули.Например, стандартное тихоокеанское время — «-08: 00». |
Get-Date — PowerShell — SS64.com
Get-Date — PowerShell — SS64.comПолучите текущую дату и время.
Синтаксис Get-Date [[-date] DateTime ] [-displayHint {Дата | Время | DateTime}] {[-format string ] | [- u Формат строка ]} [-year int ] [-month int ] [-day int ] [-hour int ] [-minute int ] [-second int ] [ CommonParameters ] ключ -date DateTime По умолчанию Get-Date возвращает текущую системную дату и время.Параметр -date позволяет указать (обычно через конвейер) конкретную дату и время. -displayHint DisplayHintType Отображать только дату, только время или дату и время. Это не влияет на извлекаемый объект DateTime. -format строка Отображение даты и времени в формате .NET на что указывает Строка , представляющая спецификатор формата. -uFormat строка Отображение даты и времени в формате Unix.Ошибка заключается в том, что% V не может вернуть номер недели ISO. Обходные решения см. Ниже. Варианты% g,% G,% h,% k,% l,% N,% u,% U,% V,% w,% W,% X и% Z также являются нестандартными.
год, месяц, день, час, минута, секунда Это позволяет вам установить отдельные элементы, которые будут отображаться на месте текущей даты / времени. например вы можете установить время на 12:00
При использовании -format или -uformat PowerShell получит только те свойства, которые необходимы для отображения даты в указанном вами формате.В результате некоторые свойства и методы объектов DateTime могут быть недоступны.
Дата Свойства:
$ day = (дата получения) .day
$ dayofweek = (дата получения) .dayofweek
$ dayofyear = (дата получения) .dayofyear
$ hour = (get-date) .hour
$ ms = (дата получения). миллисекунда
$ минута = (дата получения). минута
$ month = (дата получения) .month
$ second = (дата получения) .second
$ time = (дата получения) .timeofday
$ год = (дата получения).год
Чтобы увидеть все свойства и методы объекта DateTime, введите get-date | получить член
Если вы укажете значение, превышающее количество дней в месяце, PowerShell добавит число дней в месяц и отображает результат. Например, get-date -month 2 -day 31 отобразит «3 марта», а не «31 февраля».
Неделя года
Хотя документ get-date -uformat возвращает «формат Unix», а в Unix% V возвращает номер недели ISO, Get-Date -uformat «% V» фактически возвращает «неделю Microsoft» в году.Неделя 1 просто определяется как первые 6 дней в году и последующие недели, пронумерованные каждые 7 дней.
Почему 6 дней в первую неделю, а не 7, я понятия не имею — это означает, что любой еженедельный отчет, сделанный с использованием этих номеров недель, будет иметь ошибку 15% -20% в первую неделю года.
Стандартные номера недель ISO всегда начинаются с понедельника , а первая неделя года всегда составляет 7 дней.
Неделя 1 года — это первая неделя с не менее чем четырьмя днями этого года, поэтому первый четверг в году всегда приходится на неделю 1.
Каждая неделя ISO длится 7 дней, но иногда эти недели переходят в новый год, поэтому в приведенном выше примере января 2027 года первые 3 дня будут на 53 неделе ISO предыдущего года.
В Excel функция = ISOWEEKNUM ( Дата ) вернет правильный номер недели ISO.
Вычисление истинного номера недели ISO в PowerShell немного сложнее но вот короткий сценарий для этого:
$ checkdate = Get-Date -date " 2007-12-31 " $ dow = [int] ($ checkdate).день недели # если день недели раньше четверг (пн-ср) добавляем 3, так как четверг является критическим # день для определения начала недели ISO. Источник [x] if ($ dow -match "[1-3]") {$ checkdate.addDays (3)} # Вернуть номер недели ISO $ (Get-Culture) .Calendar.GetWeekOfYear (($ checkdate), [System.Globalization.CalendarWeekRule] :: FirstFourDayWeek, [DayOfWeek] :: Monday)# Метод ISOWeek.GetWeekOfYear упростит эту задачу в .NET Core 3.0 / .Net standard 2.1
Примеры
Получить текущую дату и время, но отобразить только дату:
PS C: \> get-date -DisplayHint date
Получить текущую дату и время и сохранить в переменной $ start:
PS C: \> $ start = Get-Date -format «дд-МММ-гггг ЧЧ: мм»
Получить текущее время в часах, минутах и секундах:
PS C: \> $ time_now = Get-Date -format «ЧЧ: мм: сс»
14:43:04
Получить текущую дату и время в строгом формате ISO 8601:
PS C: \> Get-Date -format s
2018-11-26T14: 43: 04
Получите текущую дату и время с долями секунды в формате, подходящем для использования в качестве имени файла Windows:
PS C: \> get-date -format yyyy-MM-ddTHH-mm-ss-ff
2018-11-26T14-45-02-33
Получить текущую дату и время, отобразить как общую короткую дату / время:
PS C: \> get-date -format g
Отображение дня года:
PS C: \> (дата получения).день года
Получить день недели как целое число (0 = воскресенье, 6 = суббота):
PS C: \> [Int] $ dow = Get-Date | Выбрать объект -ExpandProperty DayOfWeek
PS C: \> $ Доу
Отображение вчерашней даты с использованием метода .AddDays:
PS C: \> (Get-Date) .AddDays (-1)
Получить конкретную дату:
PS C: \> $ mydate = Get-Date -date «2021-02-28»
или
PS C: \> «2021-02-28» | Get-Date
Отображение летнего времени и UTC:
PS C: \> $ a = дата получения
$ а.IsDaylightSavingTime ()
$ a.ToUniversalTime ()
# или отобразить в формате ISO 8601:
$ a.ToUniversalTime (). ToString (‘гггг-ММ-дд ЧЧ: мм: сс’)
Отображение даты BIOS удаленного компьютера с помощью WMI:
PS C: \> $ a = get-ciminstance win32_bios -computer SERVER64
$ a | format-list -property Name, @ {Label = «Дата BIOS»; `
Выражение = {$ _. ConvertToDateTime ($ _. ReleaseDate)}}
Обратный апостроф (`) — это символ продолжения строки
«Carpe Diem — Лови день» ~ Гораций
Связанные командлеты PowerShell:
Set-Date — установка системного времени в хост-системе.
New-Timespan — Создать объект временного интервала.
Rename-Item — переименовать элементы, указав дату или время.
Эквивалентная команда bash: date — отображение или изменение даты.
Авторские права © 1999-2021 SS64.com
Некоторые права защищены.
Форматирование DateTime — Полезные советы — Полезные советы
Когда у вас есть истинное DateTime (а не строка, например), у вас есть множество эффективных способов форматирования. Вы можете напрямую получить объекты DateTime:
PS> $ installDate = (Get-CimInstance -Class Win32_OperatingSystem).Дата установки PS> $ installDate.GetType (). FullName System.DateTime
Или вы можете преобразовать строку в DateTime:
PS> $ psconf = Get-Date -Date '2019-06-04 09:00' PS> $ psconf.GetType (). FullName System.DateTime
Если у вас есть объект DateTime, используйте метод ToString () и укажите один или два аргумента.
Первый аргумент определяет, какие части даты вы хотите видеть, и использует эти (с учетом регистра!) Заполнители:
г Год
М Месяц
d День
Час
м Минуты
с Секунды
f Миллисекунды
Чем больше заполнителей вы укажете, тем больше деталей вы получите:
PS> (Get-Date).ToString ('дд') 30 PS> (Get-Date) .ToString ('ддд') Так PS> (Get-Date) .ToString ('дддд') Sonntag PS>
(как видите, PowerShell использует ваш язык по умолчанию, которым в этом примере был немецкий)
Чтобы вывести DateTime в формате ISO, попробуйте следующее:
PS> $ installDate = (Get-CimInstance -Class Win32_OperatingSystem) .InstallDate PS> $ installDate.ToString ('гггг-ММ-дд ЧЧ: мм: сс') 2018-06-08 18:24:46 PS>
Если вы также хотите указать языковой стандарт (язык), укажите CultureInfo в качестве второго параметра:
PS> (Get-Date).ToString ('dddd', [System.Globalization.CultureInfo] 'en-us') воскресенье PS> (Get-Date) .ToString ('dddd', [System.Globalization.CultureInfo] 'zh') 星期日 PS> (Get-Date) .ToString ('dddd', [System.Globalization.CultureInfo] 'es') Доминго PS> (Get-Date) .ToString ('dddd', [System.Globalization.CultureInfo] 'fr') диманче PS>
Если вам интересно, каков идентификатор культуры для данной культуры, попробуйте следующее:
PS> [System.Globalization.CultureInfo] :: GetCultures («Установлено») | Out-GridView -PassThru
psconf.eu — PowerShell Conference EU 2019 — 4-7 июня, Ганновер, Германия — посетите www.psconf.eu Существует не так много тренингов для опытных скриптеров PowerShell, где вы действительно все еще узнаете что-то новое. Но есть одно место, которое нельзя пропустить: PowerShell Conference EU — с 40 известными международными докладчиками, включая членов команды PowerShell и MVP, а также 350 профессиональных и творческих сценаристов PowerShell. Регистрация открыта на сайте www.psconf.eu, и вскоре станет доступна полная трехдневная программа на 4 дня.Раз в год это просто умный шаг — собраться вместе, обновить ноу-хау, узнать о безопасности и смягчении последствий, а также принести домой свежие идеи и авторитетные рекомендации. Мы будем рады видеть вас и слышать от вас!
Повторите твит этого совета!
Как отформатировать дату для вывода в Windows PowerShell | Windows PowerShell, Windows Server
Проблема
Вы хотите контролировать способ отображения и форматирования даты в PowerShell.
Решение
Для управления форматом даты используйте один из следующих параметров:
• Параметр –Format командлета GetDate:
PS> GetDate Date «09.05.1998 13:23» Формат «ddMMyyyy @ hh: mm: ss» 0
98 @ 01:23:00• Оператор форматирования строки (f) PowerShell:
PS> $ date = [DateTime] «09.05.1998 13:23» PS> «{0: ddMMyyyy @ hh: mm: ss}» f $ date 0
98 @ 01:23:00• Метод ToString () объекта:
PS> $ date = [DateTime] «09.05.1998 13:23» PS> $ date.ToString («ddMMyyyy @ чч: мм: сс») 0
98 @ 01:23:00• Параметр –UFormat командлета GetDate, который поддерживает строки формата даты Unix:
PS> GetDate Date «09.05.1998 13:23» UFormat «% d% m% Y @% I:% M:% S» 0
98 @ 01:23:00Обсуждение
За исключением параметра –Uformat командлета GetDate, все форматирование даты в PowerShell использует стандартные строки формата .NET DateTime. Эти строки формата позволяют отображать даты в одном из многих стандартных форматов (таких как короткие или длинные шаблоны даты в вашей системе) или в полностью настраиваемом виде.
Если вы уже привыкли к строкам форматирования даты в стиле Unixstyle (или преобразуете существующий сценарий, в котором используется сложный сценарий), может оказаться полезным параметр –Uformat командлета GetDate. Он принимает строки формата, принятые командой даты Unix, но не предоставляет никаких функций, которые недоступны стандартным строкам форматирования даты .NET.
При работе со строковой версией даты и времени имейте в виду, что они являются наиболее частым источником проблем интернационализации — проблем, возникающих при запуске сценария на машине с культурой, отличной от той, на которой он был написан.В Северной Америке «05/09/1998» означает «9 мая 1998 года». Однако во многих других культурах это означает «5 сентября 1998 года». По возможности используйте и сравнивайте объекты DateTime (а не строки) с другими объектами DateTime, чтобы избежать этих культурных различий. Пример 56 демонстрирует этот подход.
Пример 56 . Сравнение объектов DateTime с оператором gt
PS> $ dueDate = [DateTime] «01/01/2006» PS> if ([DateTime] :: Now gt $ dueDate) >> {>> «Срок действия учетной записи» >>} >> Срок действия учетной записи сейчас
PowerShell всегда s принимает североамериканский формат даты, когда интерпретирует константу DateTime, например [DateTime] «05/09/1998».Это по той же причине, по которой все языки интерпретируют числовые константы
.(например, 12,34) в североамериканском формате. Если бы это было иначе, почти каждый сценарий, который имел дело с датой и временем, не работал бы в международных системах.
Для получения дополнительных сведений о командлете GetDate введите GetHelp GetDate.
Get-Date | PDQ.com
Get-Date [[-Date] ] [-Day ] [-DisplayHint {Date | Время | DateTime}] [-Format ] [-Hour ] [-Millisecond ] [-Minute ] [-Month ] [-Second ] [-Year ] [<Общие параметры>]
Get-Date [[-Date] ] [-Day ] [-DisplayHint {Date | Время | DateTime}] [-Hour ] [-Millisecond ] [-Minute ] [-Month ] [-Second ] [-UFormat ] [-Year ] [<Общие параметры>]
Командлет Get-Date получает объект DateTime, представляющий текущую дату или указанную вами дату.Он может форматировать дату и время в нескольких форматах Windows и UNIX. Вы можете использовать Get-Date для создания строки символов даты или времени, а затем отправить эту строку в другие командлеты или программы.
Параметры
-Date
Задает дату и время. По умолчанию Get-Date получает текущую системную дату и время.
Введите дату в формате, стандартном для языкового стандарта системы, например дд-ММ-гггг (немецкий [Германия]) или ММ / дд / гггг (английский [США]).
-Day
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Указывает день месяца, который отображается. Введите значение от 1 до 31. По умолчанию текущий день.
Если указать значение, превышающее количество дней в месяце, Windows PowerShell прибавит количество дней к месяцу и отобразит результат. Например, «Get-Date -Month 2 -Day 31» отображает 3 марта, а не 31 февраля.
-DisplayHint
- Значение по умолчанию — Нет
- Принимает ввод конвейера Ложь
Определяет, какие элементы даты и времени отображаются. Допустимые значения для этого параметра:
— Дата. Отображает только дату. — Время. Отображает только время. — DateTime. Отображает дату и время.
DateTime — значение по умолчанию. Этот параметр не влияет на объект DateTime, который получает Get-Date.
-Format
- Значение по умолчанию — Нет
- Принимает конвейерный ввод Ложь
Отображает дату и время в формате Microsoft .NET Framework, указанном спецификатором формата. Введите спецификатор формата. Список доступных описателей формата см. В разделе Класс DateTimeFormatInfo http://msdn.microsoft.com/library/system.globalization.datetimeformatinfo.aspx (http://msdn.microsoft.com/library/system.globalization.datetimeformatinfo.aspx) в MSDN.
При использовании параметра Format Windows PowerShell получает только те свойства объекта DateTime, которые необходимы для отображения даты в указанном вами формате. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.
Начиная с Windows PowerShell 5.0, вы можете использовать следующие дополнительные форматы в качестве значений для параметра Format.
— Дата файла. Представление текущей даты по местному времени в виде файла или удобного пути.Он имеет формат ггггммдд (с использованием 4-х, 2-х и 2-х цифр). Пример результатов при использовании этого формата: 20150302.
— FileDateUniversal. Представление текущей даты по всемирному координированному времени в виде файла или удобного пути. Он имеет формат ггггммдд + ‘Z’ (с использованием 4-х, 2-х и 2-х цифр). Пример результатов при использовании этого формата — 20150302Z.
— FileDateTime. Представление текущей даты и времени по местному времени в 24-часовом формате в формате файла или пути.Он имеет вид ггггммдд + ‘Т’ + ччммссмсмс, где мсмс — это четырехсимвольное представление миллисекунд. Пример результатов при использовании этого формата: 20150302T1240514987.
— FileDateTimeUniversal. Представление текущей даты и времени по всемирному координированному времени в 24-часовом формате в виде файла или удобного пути. Он имеет форму ггггммдд + ‘T’ + ччммссмсмс, где msms — это четырехсимвольное представление миллисекунд, + ‘Z’. Пример результатов при использовании этого формата: 20150302T0840539947Z.
-Hour
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Задает отображаемый час. Введите значение от 1 до 23. По умолчанию используется текущий час.
-Миллисекунда
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Указывает миллисекунды в дате.Введите значение от 0 до 999. По умолчанию используется текущее количество миллисекунд.
Этот параметр появился в Windows PowerShell 3.0.
-Minute
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Задает отображаемую минуту. Введите значение от 1 до 59. Значение по умолчанию — текущие минуты.
-Month
- Значение по умолчанию — Нет
- Принимает ввод конвейера Ложь
Задает отображаемый месяц.Введите значение от 1 до 12. По умолчанию текущий месяц.
-Second
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Задает второе отображаемое значение. Введите значение от 1 до 59. По умолчанию — текущая секунда.
-UFormat
- Значение по умолчанию — Нет
- Принимает ввод конвейера Ложь
Отображает дату и время в формате UNIX.Список спецификаторов формата см. В разделе «Примечания».
При использовании параметра UFormat Windows PowerShell получает только те свойства объекта DateTime, которые необходимы для отображения даты в указанном вами формате. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.
-Year
- Значение по умолчанию: Нет
- Принимает ввод конвейера Ложь
Задает отображаемый год.Введите значение от 1 до 9999. По умолчанию текущий год.
Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable и OutVariable.
Входы
НиктоВы не можете передать ввод по конвейеру этому командлету.
Выходы
System.DateTime или System.StringПри использовании параметров Format или UFormat Get-Date возвращает строку.В противном случае он возвращает объект DateTime.
Примеры
- Получите дату и отобразите ее:
PS C: \> Get-Date -DisplayHint Date 13 июня 2006 г., вторник
Эта команда получает объект DateTime, но отображает только дату. Он использует параметр DisplayHint, чтобы указать, что должна отображаться только дата.
- Получите дату и время в коротком формате:
PS C: \> Get-Date -Format g 13.06.2006 12:43
Эта команда получает текущую дату и время и форматирует их в краткий и кратковременный форматы.Он использует спецификатор формата g .NET Framework (Общий [краткая дата и короткое время]) для указания формата.
- Получите дату и время в формате UNIX:
PS C: \> Get-Date -UFormat "% Y /% m /% d /% A /% Z" 13.06.2006 / вторник / -07
Эта команда получает текущую дату и время и форматирует их, как указано в команде. В этом случае формат включает полный год (% Y), двузначный числовой месяц (% m), дату (% d), полный день недели (% A) и смещение от UTC ( Зулусский).
- Получите день года для текущей даты:
PS C: \> (Get-Date -Year 2000 -Month 12 -Day 31) .DayOfYear 366
Эта команда отображает день года для текущей даты. Например, 31 декабря — 365-й день 2006 года, но это 366-й день 2000 года.
- Определите, настроены ли дата и время на летнее время:
PS C: \> $ A = Get -Дата PS C: \> $ A.IsDaylightSavingTime () Истинный
Эти команды сообщают, настроены ли текущая дата и время для перехода на летнее время в текущем языковом стандарте.
Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод IsDaylightSavingTime для объекта в $ A.
Чтобы просмотреть свойства и методы объекта DateTime, введите:
`Get-Date | Get-Member`.
- Преобразование текущей даты и времени в UTC:
PS C: \> $ A = Get-Date PS C: \> $ A.ToUniversalTime () 13 июня 2006 г. 20:09:19
Эти команды конвертируют текущую дату и время во время UTC.
Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод ToUniversalTime для объекта в $ A.
- Преобразование объекта WMI DATETIME в объект DateTime .NET Framework:
PS C: \> $ A = Get-WmiObject Win32_Bios -Computer Server01 PS C: \> $ A | Format-List -Property Name, @ {Label = "BIOS Age"; Expression = {(Get-Date) - $ _. ConvertToDateTime ($ _. ReleaseDate)}} Имя: BIOS системы по умолчанию Возраст BIOS: 1345.17: 31: 07.10 Инструментарий управления Windows (WMI) использует объект DATETIME, отличный от объекта DateTime .NET Framework. что Get-Date возвращается. Чтобы использовать информацию DATETIME из WMI в команде с информацией DateTime из Get-Date, вы должны использовать метод ConvertToDateTime для преобразования объектов WMI CIM_DATETIME в .NET Framework DateTime объекты.
Команды в этом примере отображают имя и возраст BIOS на удаленном компьютере Server01.
Первая команда использует командлет Get-WmiObject для получения экземпляра класса Win32_BIOS на Server01 и затем сохраняет его в переменной $ A.
Вторая команда использует оператор конвейера (|) для отправки объекта WMI, хранящегося в $ A, командлету Format-List. Параметр Property командлета Format-List указывает два свойства, отображаемых в списке: имя и возраст BIOS. Свойство BIOS Age указано в хэш-таблице. Таблица включает ключ Label, который указывает имя свойства, и ключ Expression, содержащий выражение, вычисляющее возраст BIOS. Выражение использует метод ConvertToDateTime для преобразования каждого экземпляра ReleaseDate в.NET Framework DateTime объект. Затем значение вычитается из значения командлета Get-Date, который без параметров получает текущую дату.
- Получение длинной даты и длинного формата времени для текущей даты и времени:
PS C: \> Get-Date 13 июня 2006 г. 12:43:42
Эта команда получает объект DateTime и отображает текущую дату и время в формате длинной даты и долгого времени для языкового стандарта системы, как если бы вы набрали `Get-Date -Format F`.
- Преобразуйте объект DateTime в строку и добавьте его в файл:
PS C: \> Get-Date 26 сентября 2006 г. 11:25:31 PS C: \> (Get-Date) .ToString () 26.09.2006 11:25:31 PS C: \> Get-Date | Добавить-Content Test.txt
Эти команды демонстрируют, как использовать Get-Date с Add-Content и другими командлетами, которые преобразуют объект DateTime, который генерирует Get-Date, в строку.
Первая команда показывает, что отображение по умолчанию из команды Get-Date имеет формат длинной даты и долгое время.
Вторая команда показывает, что отображение по умолчанию из метода ToString () объекта DateTime имеет кратковременный и кратковременный форматы.
Третья команда использует оператор конвейера для отправки объекта DateTime командлету Add-Content, который добавляет содержимое в файл Test.txt. Поскольку Add-Content использует метод ToString () объекта DateTime, добавляемая дата имеет краткий и кратковременный форматы.
Четвертая команда использует параметр Format Get-Date для указания формата.Когда вы используете параметры Format или UFormat, Get-Date генерирует строку, а не объект DateTime. Затем, когда вы отправляете строку в Add-Content, она добавляет строку в файл Test.txt, не изменяя его.
- Создайте метку времени для использования в качестве имени каталога:
- Первая команда использует параметр * Format * со значением o для создания строки метки времени .:
PS C: \> Get-Date -Формат o 2012-03-08T10: 55: 55.6083839-08: 00
Первая команда использует параметр * Format * со значением o для создания строки отметки времени.
- Вторая команда подготавливает метку времени для использования в имени каталога:
PS C: \> $ TimeStamp = Get-Date -Format o | foreach {$ _ -replace ":", "."}
Команда заменяет символы двоеточия (:) в строке точками (.) И сохраняет результат в переменной $ TimeStamp. Замена двоеточий предотвращает интерпретацию символов, предшествующих каждому двоеточию, как имени диска.
- Третья команда использует функцию Mkdir для создания каталога с именем в переменной $ TimeStamp:
PS C: \> mkdir C: \ ps-test \ $ TimeStamp Каталог: C: \ ps-test Режим LastWriteTime Длина Имя ---- ------------- ------ ---- d ---- 8 марта 2012 г. 11:01 2012-03-08T11.00.24.4192623-08.00
В этом примере показано, как использовать командлет Get-Date для создания метки времени и как использовать метку времени в имени каталога или как его часть.
- Первая команда использует параметр * Format * со значением o для создания строки метки времени .:
Дополнительные примечания
* По умолчанию дата-время отображается в формате длинной даты и долгого времени для языкового стандарта системы. Когда вы передаете дату по конвейеру командлетам, которые ожидают строкового ввода, например командлету Add-Content, Windows PowerShell преобразует объект DateTime в строку перед добавлением его в файл.Формат ToString () по умолчанию короткий. дата и долгое время. Чтобы указать альтернативный формат, используйте параметр Format или UFormat Get-Date. Значения Uformat: Ниже приведены значения параметра UFormat. Формат команды: Get-Date -UFormat% Например, Get-Date -UFormat% d Дата-время: Дата и время - полное (по умолчанию) (пятница, 16 июня 2006 г., 10:31:27) c Дата и время - сокращенные (Пт, 16 июня, 10:31:27 2006 г.) Дата: D Дата в формате мм / дд / гг (14.06.06) x Дата в стандартном формате для локали (09/12/07 для английского и американского языков) Год: C Century (20 за 2006 год) Y Год в 4-значном формате (2006) y Год в 2-значном формате (06) G То же, что и Y g То же, что и 'y' Месяц: b Название месяца - сокращенное (январь) B Название месяца - полное (январь) h То же, что и 'b' m Номер месяца (06) Неделю: W Неделя года (00-52) V неделя года (01-53) U То же, что и "W" День: День недели - сокращенное название (пн) День недели - полное название (понедельник) u День недели - число (понедельник = 1) d День месяца - 2 цифры (05) e День месяца - цифра, перед которой стоит пробел (5) j День года - (1-366) w То же, что и 'u' Время: p AM или PM r Время в 12-часовом формате (09:15:36 AM) R Время в 24-часовом формате - без секунд (17:45) T Время в 24-часовом формате (17:45:52) X То же, что и 'T' Z Смещение часового пояса относительно всемирной координаты времени (UTC) (-07) Час: Час Час в 24-часовом формате (17) I Час в 12-часовом формате (05) k То же, что и 'H' l То же, что и 'I' (I в верхнем регистре = L в нижнем регистре) Минуты и секунды: M Минуты (35) S секунд (05) s Секунды, прошедшие с 00:00:00 1 января 1970 г. (1150451174.95705) Специальные символы: n символ новой строки (\ n) t Символ табуляции (\ t) *
Работа с датами в PowerShell: советы и рекомендации
Когда я пишу сценарии PowerShell, я часто обнаруживаю, что мне нужно ссылаться на дату. Например, я иногда писал сценарии, которые извлекают журналы событий Windows с определенной даты, или сценарии, которые архивируют данные о старении на основе даты создания файла. Это всего лишь пара примеров того, как может потребоваться ссылка на дату в сценарии PowerShell.В этой статье я хочу показать вам несколько приемов работы с датами в PowerShell.
Получение даты
Заставить PowerShell отображать текущую дату просто. Для этого просто введите командлет Get-Date. Если вам нужно отобразить дату определенным образом, PowerShell предлагает несколько различных вариантов для этого. Самый простой способ — использовать подсказку на экране. Параметр DisplayHint может иметь значение Date, Time или DateTime. На изображении ниже показано, как работает основной командлет Get-Date, а также несколько примеров использования параметра DisplayHint.
Если вам нужно немного больше контроля над выводом, вы можете использовать параметр Format или параметр UFormat. Параметр Формат в основном используется, когда вам нужно указать дату в определенном формате для сравнения. Мы не будем использовать параметр Format в этой статье, но все же рекомендуется знать о его существовании.
Параметр UFormat больше используется для отображения. Это позволяет вам расположить различные элементы, составляющие дату и время, по вашему выбору.Все, что вам нужно сделать, это добавить различные символы форматирования к параметру UFormat. Параметры, которые вы можете использовать, включают:
% M — Месяц (в виде числа)
% D — Дата
% Y — Год
% A — День недели
% Z — Часовой пояс, выраженный как смещение от времени UTC или зулусского времени. Например, -5 — это восточное время в США.
Ниже вы можете увидеть пример того, как работает параметр UFormat.
На изображении выше есть две вещи, на которые стоит обратить внимание.Во-первых, вы заметите, что все, что следует за параметром UFormat, заключено в кавычки. Это потому, что я не просто указываю символы форматирования, я также могу использовать текст. На рисунке я использовал смесь текста и символов форматирования.
Еще одна вещь, на которую следует обратить внимание, это то, что хотя я живу на восточном побережье Соединенных Штатов, где обычно смещение часового пояса составляет -5, выходные данные на рисунке выше показывают смещение как -4. Это потому, что сейчас летнее время.Но было бы неплохо иметь возможность проверить это? На самом деле мы можем. Вот как это делается:
$ A = Get-Date
$ A.IsDaylightSavingTime ()
Как вы можете видеть на изображении ниже, PowerShell показывает значение True, что указывает на то, что сейчас действительно летнее время.
А как насчет дня в году?
Мы также можем использовать PowerShell, чтобы сообщить нам, какой сегодня день в году. Вот как это работает:
$ A = Get-Date
$ A.DayOfYear
Если вы действительно хотите сделать что-то интересным, вы можете указать дату, чтобы узнать, на какой день года она выпадает.Указанная вами дата может быть прошлой или будущей. Вот пример:
Get-Date -Год 2018 -Месяц 8 -День 22) .DayOfYear
Вы можете увидеть несколько примеров на изображении ниже.
Проведение сравнения дат
Как я сказал ранее, для сравнения дат можно использовать PowerShell. Хотя вы можете использовать параметр -Format, чтобы поместить дату в определенный формат перед ее сравнением с другим значением, это не всегда необходимо.Например, сравнение дат записи файлов не требует использования какого-либо специального форматирования.
Предположим на мгновение, что вы хотите сравнить время последней записи для определенного файла с датой и временем по вашему выбору, чтобы увидеть, был ли файл записан позже указанной даты.
В такой ситуации первое, что нам нужно сделать, это сопоставить нашу целевую дату с переменной. Для демонстрации я сопоставлю 2 января 2017 года (что является случайной датой) с переменной A $.Затем я сопоставлю конкретный файл с переменной, которую назову X $. После этого можно будет провести сравнение между ними. Итак, вот команды, которые я собираюсь использовать:
$ A = (Get-Date -Year 2017 -Month 01-Day 02)
$ A
$ X = Get-ChildItem Readme.txt
$ X.LastWriteTime
$ X.LastWriteTime -GT $ A
Первая строка кода отображает переменную $ A на 2 января 2017 года. Следующая строка просто проверяет, содержит ли переменная желаемую дату.Третья строка кода отображает переменную $ X в файл с именем ReadMe.txt. В четвертой строке отображается время последней записи файла. В последней строке кода сравниваются две даты. Он покажет True, если файл был написан позже, чем 2 января 2017 года. В противном случае будет показано значение False. Снимок экрана ниже показывает это в действии. Вы также заметите, что я добавил еще одну строку, чтобы проверить, было ли время последней записи файла старше (-LT) 2 января 2017 г. Выполнение двух отдельных сравнений позволяет увидеть, что сравнение действительно делает то, что есть должен сделать.
Даты в PowerShell: дополнительные сведения
PowerShell на самом деле позволяет вам делать гораздо больше в отношении форматирования и сравнения дат, чем то, о чем я говорил в этой статье. Если вы хотите узнать больше об использовании дат в PowerShell, лучше всего начать с документации Microsoft по командлету Get-Date.
Просмотры сообщений: 67 963
Другие статьи об основах PowerShell
Как использовать командлеты даты получения PowerShell (дата получения PowerShell)
В этом руководстве по PowerShell мы обсудим, как использовать командлеты PowerShell get-date с различными примерами команды PowerShell get-date .Давайте посмотрим на различные примеры на PowerShell get date .
Содержание руководства по SharePoint Online:
Командлеты получения даты PowerShell
Теперь мы увидим, как использовать командлеты PowerShell get-date или функцию даты PowerShell .
Get-Date : команда PowerShell Get-Date используется для отображения текущей даты и времени системы.
Синтаксис: Ниже приведен синтаксис команды PowerShell Get-Date .
Get-Date
[[-Дата] ]
[-Год ]
[-Месяц ]
[-День ]
[-Час ]
[-Минут ]
[-Второй ]
[-Миллисекунды ]
[-DisplayHint ]
[-Формат ]
[<Общие параметры>]
Вы можете использовать Windows PowerShell или PowerShell ISE для отладки, выполнения и тестирования сценария на PowerShell получить дату .
Get-Date
Powershell получить датуВот как мы можем использовать powershell get date , чтобы получить текущую дату и время.
Вы также можете использовать приведенную ниже команду, чтобы получить системные настройки даты и времени.
(Get-Culture) .DateTimeFormat
Формат даты получения PowerShell
Теперь мы увидим несколько примеров формата даты получения PowerShell .
Отображать только текущую дату
Из командлета get-date можно получить только дату, время или только DateTime.
PowerShell предоставляет параметр -DisplayHint , который мы можем использовать для получения только даты, только времени или только DateTime.
Ниже приведен командлет PowerShell для получения только текущей даты.
Get-Date -DisplayHint Date
Отображать только текущее время
Используя приведенную ниже команду PowerShell для отображения только текущего времени.
Get-Date -DisplayHint Время
Показать только текущую дату и время
Ниже приведен командлет PowerShell для получения текущей даты и времени системы .
Get-Date -DisplayHint DateTime
Powershell получить датуПолучите дату, день года
Это интересная команда для получения даты в день года.
День в году будет отображаться с использованием свойства DayofYear , как показано ниже:
(Get-Date -Год 2020-Месяц 12-День 31) .DayOfYear
(Get-Date -Year 2020 -Month 12 -Day 5) .DayOfYear
(Get-Date -Year 2019 -Month 05-Day 10) .DayOfYear
Результат будет выглядеть, как показано ниже:
PowerShell пример получения датыПоскольку 2020 год високосный, вы можете видеть, что он возвращается 366.
Как отобразить только месяц в году с даты получения
Мы можем легко получить форматирование даты, чтобы отображал только месяц в году .
(Get-Date). Месяц
Помимо этого, мы также можем получить Year, Day, DayOfWeek, DayOfYear из командлетов get-date в PowerShell и т. Д.
(Get-Date) .Месяц
(Get-Date). Год
(Get-Date) .День
(Get-Date) .DayOfWeek
(Get-Date) .DayOfYear
Вы можете увидеть результат, как показано ниже:
PowerShell получить дату примерыПримеры формата даты получения PowerShell
Вот еще несколько примеров того, как мы можем отформатировать командлетов PowerShell get-date .
(get-date) .ToString ("d.M.yyyy hh: mm tt")
Приведенный выше командлет PowerShell отображает текущую дату в формате date.month.year и hour.minute AM / PM.
Используя «tt», мы получим текущее время в формате am и pm.
Get-Date -Format g
Эта команда Get-Date-Format g отображает текущую дату и текущее время в сокращенном формате.
Get-Date -Format t
Команда Get-Date -Format t отобразит только время в коротком формате
Get-Date -Format d
Get-Date -Format d отображает только дату в кратком формате.
Get-Date -Format U
Командлеты Get-Date -Format U используются для отображения полной даты и времени по всемирному координированному времени.
Вы можете увидеть, что результат выглядит следующим образом:
дата получения | fl *
Приведенная выше команда отобразит такие свойства, как DateTime, Date, Day, DayOfWeek, DayOfYear, Hour, Kind и т. Д., В формате списка.
(дата получения) .ToUniversalTime ()
Команда PowerShell преобразует текущую дату и время в универсальный часовой пояс (UTC).
Проверить, настроена ли дата на летнее время
Используя приведенные ниже командлеты, вы можете проверить , настроена ли дата на летнее время или нет.
Мы можем использовать метод IsDaylightSavingTime , чтобы проверить, настроена ли дата на летнее время.
Значит, он вернет истину / ложь.
$ isdatetime = Дата получения
$ isdatetime.IsDaylightSavingTime ()
Преобразование текущего времени во время UTC
Мы можем легко преобразовать текущее время во время в формате UTC с помощью Get-Date.
$ currentTime = Get-Date
$ currentTime.ToUniversalTime ()
Приведенная выше команда легко конвертирует текущее время во время UTC.
Добавления даты получения PowerShell
Мы можем использовать PowerShell get-date adddays , чтобы добавить количество дней к текущей дате.
Синтаксис:
(дата получения) .AddDays (2)
Вы можете увидеть, как указанные выше командлеты отображают дату, добавляя 2 дня к сегодняшней дате.
Помимо adddays, мы также можем использовать PowerShell get-date AddHours, AddMinutes, AddMonths, AddSeconds, AddYears и т. Д.
(дата получения) .AddDays (2)
(дата получения) .AddMonths (2)
(дата получения) .AddYears (2)
(дата получения) .AddSeconds (40)
(дата получения) .AddMinutes (10)
(дата получения) .AddHours (5)
Вы можете увидеть результат, как показано ниже:
Дата получения PowerShell вчера
Мы также можем получить вчерашнюю дату , используя тот же метод PowerShell get-date AddDays , передав -1, как показано ниже:
(дата получения).ДобавитьДней (-1)
Вот как мы можем получить вчерашнее значение с помощью PowerShell get-date.
PowerShell get-date добавить часы
Мы можем использовать метод PowerShell get-date AddHours , чтобы добавить число часов к текущей дате, как показано ниже:
(дата получения) .AddHours (5)
Вы можете видеть, что он добавляет 5 часов к текущему времени и отображается.
Часовой пояс получения даты в PowerShell
Используя Get-TimeZone , мы можем получить часовой пояс системы.
Get-TimeZone
Приведенный выше командлет PowerShell отобразит текущий часовой пояс системы.
Мы также можем установить часовой пояс системы на другой часовой пояс, используя приведенный ниже командлет PowerShell.
Set-TimeZone-Name "Pacific Standard Time"
Дата получения PowerShell из строки
Мы также можем преобразовать строку в текущую строку в PowerShell , как показано ниже:
$ stringdate = '29 -Apr-2020 '
$ stringfinaldate = [datetime] :: parseexact ($ stringdate, 'дд-МММ-гггг', $ null)
$ stringfinaldate
Вы можете увидеть, что результат будет выглядеть, как показано ниже:
Дата установки PowerShell
Мы также можем установить дату локальной системы на определенную дату с помощью командлета PowerShell set-date , проверьте ниже командлет PowerShell.
Set-Date -Date "06.03.2019 18:53"
Дата установки PowerShellДата получения PowerShell ToShortDateString ()
Используя метод PowerShell get-date ToShortDateString () , чтобы получить сегодняшнюю дату в коротком формате даты, как показано ниже:
(дата получения) .ToShortDateString ()
Помимо этого, вы также можете переопределить метод (get-date) .ToString () для отображения сегодняшней даты в различных форматах, как показано ниже:
(дата получения).ToString ("дд-ММ-гггг")
(get-date) .ToString ("dd-MMM-yyy")
Записать текущую дату в текстовый файл в PowerShell
В PowerShell мы можем записать текущую дату в текстовый файл с помощью следующей команды.
Get-Date | Add-Content -Path "G: \ padmini \ New folder \ PSDate.txt"
Эта команда запишет текущую дату в текстовый файл.
PowerShell получить разницу между двумя датами в днях
Мы можем легко получить разницу в между двумя датами в днях, используя PowerShell .
$ startdate = '20 -Apr-2020 '
$ startdate = [datetime] :: parseexact ($ startdate, 'дд-МММ-гггг', $ null)
$ enddate = '25 -май-2020'
$ enddate = [datetime] :: parseexact ($ enddate, 'дд-МММ-гггг', $ null)
$ dateiff = $ enddate- $ startdate
$ dateiff
Он будет отображать подробную информацию, такую как дни, часы, минуты, секунды и т. Д., Разницу между двумя днями.
PowerShell получает разницу дат между двумя датами в дняхЕсли вы хотите получить разницу между двумя датами в днях в PowerShell, вы можете использовать, как показано ниже:
$ от датиров.Дни
$ dateiff.TotalDays
Вы можете увидеть результат, как показано ниже:
PowerShell получить дату и время в формате .NET
Если у вас мало знаний о Microsoft.Net , вам будет проще отформатировать PowerShell, получить дату и время в различные полезные строковые форматы.
Ниже приведены несколько примеров использования форматов .Net.
Get-Date -Format "dd-MM-yyyy"
Get-Date -Format "дддд-ММ-гггг"
Get-Date -Format "дддд-МММ-гггг"
Get-Date -Format "дд-ММ-гггг ЧЧ: мм"
Get-Date -Format «ММ-дд-гггг»
Get-Date -Format "MM-dd-yyyy HH: mm"
Вы можете увидеть результат:
Дата получения PowerShellВам могут понравиться следующие руководства по PowerShell:
В этом руководстве по PowerShell мы обсудили, как использовать командлеты PowerShell get-date .Мы также обсудили следующие вещи:
- Командлеты get-date PowerShell
- Формат get-date PowerShell
- Показывать только текущую дату
- Показывать только текущее время
- Показывать текущее время Только
- Получать день дня года
- Как только отображать месяц года из даты получения
- Примеры формата даты получения PowerShell
- Проверить, настроена ли дата для перехода на летнее время
- Преобразовать текущее время во время UTC
- Добавления даты получения PowerShell
- PowerShell get- дата вчера
- PowerShell get-date добавить часы
- PowerShell get-date timezone
- PowerShell get-date from string
- PowerShell set-date
- PowerShell get-date ToShortDateString ()
- Записать текущую дату в текстовый файл в PowerShell
- Powershell получает разницу между двумя датами в днях
Привет всем !! Я Бхавана, MVP по SharePoint и обладаю более чем 10-летним опытом работы с SharePoint, а также в.