Get-Date

获取当前日期和时间。

语法

Get-Date [-格式 <string>] [[-日期] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Get-Date [-UFormat <string>] [[-日期] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

说明

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

参数

-日期 <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”将显示“March 3”,而不是“February 31”。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-DisplayHint <DisplayHintType>

确定要显示哪些日期和时间元素。

有效值包括:

-- Date:仅显示日期

-- Time:仅显示时间

-- DateTime:显示日期和时间

默认值为 DateTime。

此参数不会影响 Get-Date 检索到的 DateTime 对象。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-格式 <string>

以格式说明符指示的 Microsoft .NET Framework 格式显示日期和时间。输入一个格式说明符。有关可用格式说明符的列表,请参阅 MSDN (Microsoft Developer Network) 库中的“DateTimeFormatInfo 类”,网址是 https://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>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

不能通过管道将输入传递给此 cmdlet。

输出

System.DateTime 或 System.String

当使用 Format 或 UFormat 参数时,输出对象是 System.String。

说明

默认情况下,以系统区域设置的长日期和长时间格式显示日期和时间。

当您通过管道将日期传递至接收字符串输入的 cmdlet(如 Add-Content)时,Windows PowerShell 会先将 DateTime 对象转换为字符串,然后才添加到文件中。ToString() 的默认格式为短日期和长时间。要指定备用格式,请使用 Get-Date 的 Format 或 UFormat 参数。

Uformat 值:

UFormat 参数的值如下。命令的格式包括:

get-date -uformat %<value>

例如,

get-date -uformat %d

Date-Time:

日期和时间 - 完整

(默认值)(2006 年 6 月 16 日,星期五,上午 10:31:27)

c 日期和时间 – 缩写(2006 年 6 月 16 日 星期五 10:31:27)

日期:

D 以 mm/dd/yy 格式显示的日期 (06/14/06)

x 以区域设置的标准格式显示的日期(中文-中国 为 07/09/12)

年份:

C 世纪(2006 的世纪值为 20)

Y 以 4 位格式显示的年份 (2006)

y 以 2 位格式显示的年份 (06)

G 同‘Y’

g 同‘y’

月份:

b 月份名称 - 缩写 (1)

B 月份名称 - 全称(一月)

h 同‘b’

M 月份编号 (06)

周:

W 一年中的周编号 (00-52)

V 一年中的周编号 (01-53)

U 同‘W’

日期:

a 一周中的第几日 - 缩写名称(周一)

A 一周中的第几日 - 全名(星期一)

u 一周中的第几日 - 编号(星期一 = 1)

d 一月中的第几日 - 2 位 (05)

e 一月中的第几日 - 数字前留一空格 ( 5)

j 一年中的第几日 - (1-366)

w 同‘u’

时间:

p 上午或下午

r 以 12 小时格式显示的时间(上午 09:15:36)

R 以 24 小时格式显示的时间 - 不显示秒 (17:45)

T 以 24 小时格式显示的时间 (17:45:52)

X 同‘T’

Z 与通用协调时间 (UTC) 的时差 (-07)

小时:

H 以 24 小时格式显示的小时数 (17)

I 以 12 小时格式显示的小时数 (05)

k 同‘H’

l 同‘I’(大写 I = 小写 L)

分钟和秒:

m 分钟 (35)

S 秒 (05)

s 自 1970 年 1 月 1 日 00:00:00 起过去的秒数 (1150451174.95705)

特殊字符:

n 换行符 (\n)

t 制表符 (\t)

示例 1

C:\PS>get-date -DisplayHint date

Tuesday, June 13, 2006

说明
-----------
此命令检索 DateTime 对象,但只显示日期。它使用 DisplayHint 参数指示只显示日期。





示例 2

C:\PS>get-date -format g

6/13/2006 12:43 PM

说明
-----------
此命令检索当前日期和时间,并将其设置为短日期和短时间格式。它使用 .NET Framework“g”格式说明符(通用[短日期和短时间])来指定格式。





示例 3

C:\PS>get-date -uformat "%Y / %m / %d / %A / %Z"

2006 / 06 / 13 / Tuesday / -07

说明
-----------
此命令检索当前日期和时间,并根据命令的指定来设置其格式。在这种情况下,格式包括年份的全称 (%Y)、两位数字的月份 (%m)、日期 (%d)、一周第几天的全称 (%A),以及相对于 UTC 的时差(“Zulu”)。





示例 4

C:\PS>(get-date -year 2000 -month 12 -day 31).dayofyear

366

说明
-----------
此命令显示当前日期是一年中的第几天。例如,12 月 31 日是 2006 年的第 365 天,但它是 2000 年的第 366 天。





示例 5

C:\PS>$a = get-date

C:\PS> $a.IsDaylightSavingTime()

True

说明
-----------
这些命令将显示当前的日期和时间是否调整为当前区域设置中的夏令时。

第一条命令创建名为 $a 的变量,然后将由 Get-Date 检索的对象赋予该 $a 变量。然后,对 $a 中的对象使用 IsDaylightSavingTime 方法。

要查看 DateTime 对象的属性和方法,请键入:
 "get-date | get-member".





示例 6

C:\PS>$a = get-date

C:\PS> $a.ToUniversalTime()

Tuesday, June 13, 2006 8:09:19 PM

说明
-----------
这些命令将当前日期和时间转换为 UTC 时间。

第一条命令创建名为 $a 的变量,然后将由 Get-Date 检索的对象赋予该 $a 变量。然后,对 $a 中的对象使用 ToUniversalTime 方法。





示例 7

C:\PS>$a = get-wmiobject win32_bios -computer server01

$a | format-list -property Name, @{Label="BIOS Age"; `
Expression={(get-date) - $_.ConvertToDateTime($_.ReleaseDate)}}

Name     : Default System BIOS
BIOS Age : 1345.17:31:07.1091047

说明
-----------
Windows Management Instrumentation (WMI) 使用不同于 Get-Date 返回的 .NET Framework 日期时间对象的一个日期时间对象。若要在命令中将 WMI 中的日期时间信息与 Get-Date 中的日期时间信息一起使用,则必须使用 ConvertToDateTime 方法将 WMI CIM_DATETIME 对象转换为 .NET Framework DateTime 对象。

此示例中的命令将显示远程计算机 Server01 上的 BIOS 的 name 和 age。

第一条命令使用 Get-WmiObject cmdlet 来获取 Server01 上的 Win32_BIOS 类的实例,然后将其存储到 $a 变量中。

第二条命令使用管道运算符 (|) 将存储在 $a 中的 WMI 对象发送至 Format-List cmdlet。Format-List 的 Property 参数用于指定要在列表中显示的两个属性:“Name”和“BIOS Age”。“BIOS Age”属性将在哈希表中指定。该表包括 Label 键(指定属性的名称)和 Expression 键(包含计算 BIOS age 的表达式)。该表达式使用 ConvertToDateTime 方法将 ReleaseDate 的每个实例转换为 .NET Framework DateTime 对象。然后,从 Get-Date cmdlet 的值中减去该值,此 cmdlet 在不带参数的情况下获取当前日期。

在 Windows PowerShell 中,倒引号字符 (`) 为行继续符。





示例 8

C:\PS>get-date

Tuesday, June 13, 2006 12:43:42 PM

说明
-----------
此命令获取 DateTime 对象并以系统区域设置的长日期和长时间格式来显示当前日期和时间,就好像您键入了“get-date -format F”一样。





示例 9

C:\PS>get-date

C:\PS> Tuesday, September 26, 2006 11:25:31 AM

c:\PS>(get-date).ToString()
9/26/2006 11:25:31 AM

C:\PS>get-date | add-content test.txt  
# Adds 9/26/2006 11:25:31 AM

C:\PS>get-date -format F | add-content test.txt
# Adds Tuesday, September 26, 2006 11:25:31 AM

说明
-----------
这些命令演示了如何结合使用 Get-Date 和 Add-Content 以及其他 cmdlet(这些 cmdlet 可将 Get-Date 生成的 DateTime 对象转换为字符串)。

第一条命令表明“get-date”命令的默认显示采用长日期和长时间格式。

第二条命令表明 DateTime 对象的 ToString() 方法的默认显示采用短日期和短时间格式。

第三条命令使用管道运算符将 DateTime 对象发送至 Add-Content cmdlet,该 cmdlet 将内容添加到 Test.txt 文件中。由于 Add-Content 使用 DateTime 对象的 ToString() 方法,所以所添加的日期采用短日期和短时间格式。

第四条命令使用 Get-Date 的 Format 参数来指定格式。当使用 Format 或 UFormat 参数时,Get-Date 生成字符串,而不是 DateTime 对象。之后,当您将字符串发送到 Add-Content 时,它会在不更改字符串的情况下直接将该字符串添加到 Test.txt 文件中。





另请参阅

概念

Set-Date
New-TimeSpan