Get-Date

获取当前日期和时间。

语法

Get-Date
   [[-Date] <datetime>]
   [-Year <int>]
   [-Month <int>]
   [-Day <int>]
   [-Hour <int>]
   [-Minute <int>]
   [-Second <int>]
   [-Millisecond <int>]
   [-DisplayHint <DisplayHintType>]
   [-Format <string>]
   [<CommonParameters>]
Get-Date
   [[-Date] <datetime>]
   [-Year <int>]
   [-Month <int>]
   [-Day <int>]
   [-Hour <int>]
   [-Minute <int>]
   [-Second <int>]
   [-Millisecond <int>]
   [-DisplayHint <DisplayHintType>]
   [-UFormat <string>]
   [<CommonParameters>]

说明

Get-Date cmdlet 获取表示当前日期或指定日期的 DateTime 对象。 Get-Date 可以采用多种 .NET 和 UNIX 格式设置日期和时间的格式。 可以使用 Get-Date 生成日期或时间字符串,然后将该字符串发送到其他 cmdlet 或程序。

Get-Date 使用计算机的区域性设置来确定输出的格式。 若要查看计算机的设置,请使用 (Get-Culture).DateTimeFormat

示例

示例 1:获取当前日期和时间

在此示例中,Get-Date 显示当前系统日期和时间。 输出的格式为长日期和长时间格式。

Get-Date

Tuesday, June 25, 2019 14:53:32

示例 2:获取当前日期和时间的元素

此示例演示如何使用 Get-Date 获取日期或时间元素。 该 参数使用日期时间DateTime的参数。

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-DateDisplayHint 参数与 Date 参数一起使用来仅获取日期。

示例 3:使用 .NET 格式说明符获取日期和时间

在此示例中,.NET 格式说明符用于自定义输出的格式。 输出是一个 String 对象。

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"

Tuesday 06/25/2019 16:17 -07:00

Get-Date 使用 Format 参数指定多个格式说明符。

此示例中使用的 .NET 格式说明符的定义如下:

规范 定义
dddd 星期几 - 全名
MM 月号
dd 月份日期 - 2 位数字
yyyy 4 位格式的年份
HH:mm 24 小时格式的时间 -no 秒
K 与世界时坐标(UTC)的时区偏移量

有关 .NET 格式说明符的详细信息,请参阅 自定义日期和时间格式字符串

示例 4:使用 UFormat 说明符获取日期和时间

在此示例中,使用多个 UFormat 格式说明符来自定义输出的格式。 输出是一个 String 对象。

Get-Date -UFormat "%A %m/%d/%Y %R %Z"

Tuesday 06/25/2019 16:19 -07

Get-Date 使用 UFormat 参数来指定多个格式说明符。

此示例中使用的 UFormat 格式说明符的定义如下:

规范 定义
%A 星期几 - 全名
%m 月号
%d 月份日期 - 2 位数字
%Y 4 位格式的年份
%R 24 小时格式的时间 -no 秒
%Z 与世界时坐标(UTC)的时区偏移量

有关有效 UFormat 格式说明符的列表,请参阅 备注 部分。

示例 5:获取一年中的日期

在此示例中,属性用于获取年份的数字日期。

公历有365天,除了具有366天的飞跃年外。 例如,2020 年 12 月 31 日是第 366 天。

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear

366

Get-Date 使用三个参数来指定日期:YearMonthDay。 该命令用括号包装,以便结果由 DayofYear 属性求值。

示例 6:检查日期是否调整为夏令时

此示例使用布尔方法验证日期是否由夏令时调整。

$DST = Get-Date
$DST.IsDaylightSavingTime()

True

变量,$DST 存储 Get-Date的结果。 $DST 使用 IsDaylightSavingTime 方法测试日期是否调整为夏令时。

示例 7:将当前时间转换为 UTC 时间

在此示例中,当前时间转换为 UTC 时间。 系统区域设置的 UTC 偏移量用于转换时间。 Notes 部分中的表列出了有效的 UFormat 格式说明符

Get-Date -UFormat "%A %B/%d/%Y %T %Z"
$Time = Get-Date
$Time.ToUniversalTime()

Wednesday June/26/2019 10:45:26 -07

Wednesday, June 26, 2019 17:45:26

Get-Date 使用带有格式说明符的 UFormat 参数来显示当前系统日期和时间。 格式说明符 %Z 表示 -07的 UTC 偏移量。

$Time 变量存储当前系统日期和时间。 $Time 使用 ToUniversalTime() 方法根据计算机的 UTC 偏移量转换时间。

示例 8:创建时间戳

在此示例中,格式说明符为目录名称创建时间戳 String 对象。 时间戳包括日期、时间和 UTC 偏移量。

$timestamp = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }
New-Item -Path C:\Test\$timestamp -Type Directory

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         6/27/2019    07:59                2019-06-27T07.59.24.4603750-07.00

$timestamp 变量存储 Get-Date 命令的结果。 Get-Date 使用带小写 o 格式说明符的 Format 参数来创建时间戳 String 对象。 将对象向下发送到管道 ForEach-ObjectScriptBlock 包含表示当前管道对象的 $_ 变量。 时间戳字符串由用句点替换的冒号分隔。

New-Item 使用 Path 参数来指定新目录的位置。 路径包含 $timestamp 变量作为目录名称。 Type 参数指定创建目录。

参数

-Date

指定日期和时间。 时间是可选的,如果未指定,则返回 00:00:00。

以系统区域设置的标准格式输入日期和时间。

例如,美国英语:

Get-Date -Date "6/25/2019 12:30:22" 返回星期二, 2019 年 6 月 25 日 12:30:22

类型:DateTime
别名:LastWriteTime
Position:0
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Day

指定显示的月份日期。 输入从 1 到 31 的值。

如果指定的值大于一个月内的天数,PowerShell 会将天数添加到月份。 例如,Get-Date -Month 2 -Day 31 显示 3 月 3 日,而不是 2 月 31 日

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisplayHint

确定显示日期和时间的元素。

接受的值如下所示:

  • 日期:仅显示日期
  • 时间:仅显示时间
  • DateTime:显示日期和时间
类型:DisplayHintType
接受的值:Date, Time, DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Format

以格式说明符指示的Microsoft .NET Framework 格式显示日期和时间。 Format 参数输出 String 对象。

有关可用 .NET 格式说明符的列表,请参阅 自定义日期和时间格式字符串

使用 Format 参数时,Get-Date 仅获取显示日期所需的 DateTime 对象的属性。 因此,DateTime 对象的一些属性和方法可能不可用。

从 PowerShell 5.0 开始,可以使用以下附加格式作为 Format 参数的值。

  • FileDate。 本地时间中当前日期的文件或路径友好表示形式。 格式 yyyyMMdd(区分大小写,使用 4 位年份、2 位数月份和 2 位天)。 例如:20190627。

  • FileDateUniversal。 通用时间(UTC)当前日期的文件或路径友好表示形式。 格式 yyyyMMddZ(区分大小写,使用 4 位数年份、2 位数月份、2 位数的日期和字母 Z 作为 UTC 指示器)。 例如:20190627Z。

  • FileDateTime。 以 24 小时格式表示当前日期和时间的文件或路径友好表示形式。 格式 yyyyMMddTHHmmssffff(区分大小写,使用 4 位年份、2 位数月份、2 位数的天、T 字母作为时间分隔符、2 位小时、2 位数分钟、2 位秒和 4 位毫秒)。 例如:20190627T0840107271。

  • FileDateTimeUniversal。 以 24 小时格式表示当前日期和时间的文件或路径友好表示形式(UTC)。 格式 yyyyMMddTHHmmssffffZ(区分大小写,使用 4 位数年份、2 位数月份、2 位天、2 位天、字母 T 作为时间分隔符、2 位小时、2 位数分钟、2 位数秒、4 位数毫秒,并将字母 Z 作为 UTC 指示器)。 例如:20190627T1540500718Z。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Hour

指定显示的小时。 输入从 0 到 23 的值。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Millisecond

指定日期中的毫秒。 输入从 0 到 999 的值。

此参数是在 PowerShell 3.0 中引入的。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Minute

指定显示的分钟。 输入从 0 到 59 的值。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Month

指定显示的月份。 输入一个介于 1 到 12 的值。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Second

指定显示的第二个值。 输入从 0 到 59 的值。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UFormat

以 UNIX 格式显示日期和时间。 UFormat 参数输出字符串对象。

UFormat 说明符前面有百分号(%),例如 %m%d%YNotes 节包含有效 UFormat 说明符表。

使用 UFormat 参数时,Get-Date 仅获取显示日期所需的 DateTime 对象的属性。 因此,DateTime 对象的一些属性和方法可能不可用。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Year

指定显示的年份。 输入从 1 到 9999 的值。

类型:Int
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

Pipeline input

Get-Date 接受管道输入。 例如,Get-ChildItem | Get-Date

输出

System.DateTime or System.String

Get-Date 返回 DateTime 对象,但使用 FormatUFormat 参数时除外。 FormatUFormat 参数返回 字符串 对象。

DateTime 对象发送到需要字符串输入的 cmdlet(例如 Add-Content),PowerShell 会将对象转换为 String 对象。

此方法 (Get-Date).ToString()DateTime 对象转换为 String 对象。

若要显示对象的属性和方法,请将对象向下发送到管道 Get-Member。 例如,Get-Date | Get-Member

备注

DateTime 对象采用系统区域设置的长日期和时间格式。

下表显示了有效的 UFormat 说明符

格式说明符 意义
%A 星期几 - 全名 星期一
%a 星期几 - 缩写名称 星期一
%B 月名 - 完整 一月
%b 月份名称 - 缩写 1 月
%C 世纪 20 for 2019
%c 日期和时间 - 缩写 Thu Jun 27 08:44:18 2019
%D 以 mm/dd/y 格式表示的日期 06/27/19
%d 月份日期 - 2 位数字 05
%e 月份的日期 - 以空格开头的数字 <空间>5
%F YYYY-mm-dd 格式的日期,等于 %Y-%m-%d (ISO 8601 日期格式) 2019-06-27
%G 与“Y”相同
%g 与“y”相同
%H 24 小时格式的小时 17
%h 与“b”相同
%I 12 小时格式的小时 05
%j 一年中的一天 1-366
%k 与“H”相同
%l 与“I”相同(大写 I) 05
%M 纪要 35
%m 月号 06
%n 换行符
%p AM 或 PM
%R 24 小时格式的时间 -no 秒 17:45
%r 12 小时格式的时间 上午 09:15:36
%S 05
%s 自 1970 年 1 月 1 日起的秒数 00:00:00 1150451174.95705
%t 水平制表符
%T 24 小时格式的时间 17:45:52
%U 与“W”相同
%u 星期几 - 数字 Monday = 1
%V 一年中的一周 01-53
%w 与“u”相同
%W 一年中的一周 00-52
%X 与“T”相同
%x 区域设置的标准格式的日期 06/27/19 for English-US
%Y 4 位格式的年份 2019
%y 2 位数格式的年份 19
%Z 与世界时坐标(UTC)的时区偏移量 -07