当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-Date (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:07:13 浏览:13 分类:玩电脑

Get-Date (Microsoft.PowerShell.Utility)


Get-Date

模块 :Microsoft.PowerShell.Utility

获取当前日期和时间。

句法

Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   -UFormat <String>
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-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 获取日期或时间元素。该参数使用参数日期时间日期时间

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date 使用 DisplayHint 参数和 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 小时格式的时间 - 无秒

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 小时格式的时间 - 无秒

%Z

与世界时坐标 (UTC) 的时区偏移

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

示例 5:获取日期是一年中的第几天

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

公历有 365 天,闰年除外,有 366 天。例如,2020 年 12 月 31 日是第 366 天。

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

366

Get-Date 使用三个参数来指定日期:。该命令用括号括起来,以便通过 DayofYear 属性计算结果。

示例 6:检查日期是否根据夏令时进行调整

此示例使用布尔方法来验证日期是否根据夏令时进行了调整。

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

True

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

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

在此示例中,当前时间转换为 UTC 时间。系统区域设置的 UTC 偏移量用于转换时间。 “注释”部分中的表格列出了有效的 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表示UTC偏移量-07

$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 使用Format 参数和小写o 格式说明符来创建时间戳String 对象。该对象沿着管道发送到 ForEach-ObjectScriptBlock 包含表示当前管道对象的 $_ 变量。时间戳字符串由冒号分隔,冒号被句点替换。

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

示例 9:转换 Unix 时间戳

此示例将 Unix 时间(用自 1970-01-01 0:00:00 以来的秒数表示)转换为 DateTime。

Get-Date -UnixTimeSeconds 1577836800

Wednesday, January 01, 2020 12:00:00 AM

示例 10:返回解释为 UTC 的日期值

此示例演示如何将日期值解释为其 UTC 等效值。例如,该计算机设置为太平洋标准时间。默认情况下,Get-Date 返回该时区的值。使用 AsUTC 参数将值转换为 UTC 等效时间。

PS> Get-TimeZone

Id                         : Pacific Standard Time
DisplayName                : (UTC-08:00) Pacific Time (US & Canada)
StandardName               : Pacific Standard Time
DaylightName               : Pacific Daylight Time
BaseUtcOffset              : -08:00:00
SupportsDaylightSavingTime : True

PS> (Get-Date -Date "2020-01-01T00:00:00").Kind
Unspecified

PS> Get-Date -Date "2020-01-01T00:00:00"

Wednesday, January 1, 2020 12:00:00 AM

PS> (Get-Date -Date "2020-01-01T00:00:00" -AsUTC).Kind
Utc

PS> Get-Date -Date "2020-01-01T00:00:00" -AsUTC

Wednesday, January 1, 2020 8:00:00 AM

示例 11:显示不变文化

ToString() 使用当前区域性设置将 DateTime 对象转换为 String。但是,PowerShell 表达式解释始终使用不变的区域性设置。

例如,在有效 en-US 区域性的系统上,ToString() 方法使用 en-US 区域性格式化日期设置。

# Get date using current culture en-US
(Get-Date 2024-03-19).ToString()

3/19/2024 12:00:00 AM

# Get date using invariant culture
"$(Get-Date 2024-03-19)"

03/19/2024 00:00:00

参数

-AsUTC

将日期值转换为 UTC 等效时间。

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

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Date

指定日期和时间。时间是可选的,如果未指定,则返回 00:00:00。以当前所选区域设置的标准格式输入日期和时间。您可以使用 Set-Culture cmdlet 更改当前区域设置。

例如,在美国英语中:

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

类型 :

DateTime

别名:

LastWriteTime

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Day

指定显示的月份中的哪一天。输入 1 到 31 之间的值。

如果指定的值大于一个月中的天数,PowerShell 会将天数添加到该月中。例如,Get-Date -Month 4 -Day 31 显示5 月 1 日,而不是4 月 31 日

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DisplayHint

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

可接受的值如下:

  • 日期:仅显示日期
  • 时间:仅显示时间
  • DateTime:显示日期和时间
类型 :

显示提示类型

接受的值:

日期、时间、日期时间

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Format

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

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

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

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

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

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

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

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Hour

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

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Millisecond

指定日期中的毫秒数。输入 0 到 999 之间的值。

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

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Minute

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

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Month

指定显示的月份。输入 1 到 12 之间的值。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Second

指定显示的秒数。输入 0 到 59 之间的值。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-UFormat

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

UFormat 说明符前面有一个百分号 (%),例如 %m%d%Y。注释部分包含有效的UFormat 说明符表。

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-UnixTimeSeconds

自 1970 年 1 月 1 日 0:00:00 以来以秒为单位表示的日期和时间。

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

类型 :

整型64

别名:

UnixTime

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Year

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

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

日期时间

您可以通过管道将 DateTime 对象传递给此 cmdlet。

输出

日期时间

默认情况下,此 cmdlet 返回一个 DateTime 对象。

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

ToString() 使用当前区域性设置将 DateTime 对象转换为 String。但是,PowerShell 表达式解释始终使用不变的区域性设置。要了解不变文化有何不同,请参阅示例 11。

要显示对象的属性和方法,请将对象沿管道发送到 Get-Member。例如,获取日期 |获取会员。

字符串

当您使用 FormatUFormat 参数时,此 cmdlet 将返回 String 对象。

笔记

DateTime 对象输出的默认格式是当前所选语言环境的长日期和长时间格式。

有效的 UFormat 说明符显示在下表中:

这很重要

在较新版本的 PowerShell 中更改或添加了 UFormat 说明符。例如,%F 是在 PowerShell 6.2 中添加的,因此它在 Windows PowerShell 5.1 或更早版本中不可用。在设计用于在多个版本的 PowerShell 上运行的脚本中使用 UFormat 说明符时,请记住这一点。

Format specifier Meaning Example %A Day of the week - full name Monday %a Day of the week - abbreviated name Mon %B Month name - full January %b Month name - abbreviated Jan %C Century 20 for 2019 %c Date and time - abbreviated Thu Jun 27 08:44:18 2019 %D Date in mm/dd/yy format 06/27/19 %d Day of the month - 2 digits 05 %e Day of the month - preceded by a space if only a single digit <space>5 %F Date in YYYY-mm-dd format, equal to %Y-%m-%d (the ISO 8601 date format) 2019-06-27 %G ISO week date year (year containing Thursday of the week) %g Same as 'G' - 2 digits %H Hour in 24-hour format 17 %h Same as 'b' %I Hour in 12-hour format 05 %j Day of the year 1-366 %k Same as 'H' %l Same as 'I' (Upper-case I) 05 %M Minutes 35 %m Month number 06 %n newline character %p AM or PM %R Time in 24-hour format -no seconds 17:45 %r Time in 12-hour format 09:15:36 AM %S Seconds 05 %s Seconds elapsed since January 1, 1970 00:00:00 (UTC) 1150451174 %t Horizontal tab character %T Time in 24-hour format 17:45:52 %U Same as 'W' %u Numeric day of the week (1-7) (Changed in PowerShell 7.2) Monday = 1, Sunday = 7 %V Week of the year 01-53 %w Numeric day of the week (0-6) Sunday = 0, Saturday = 6 %W Week of the year 00-52 %X Same as 'T' %x Date in standard format for locale 06/27/19 for English-US %Y Year in 4-digit format 2019 %y Year in 2-digit format 19 %Z Time zone offset from Universal Time Coordinate (UTC) -07

笔记

-UFormat %s 的行为已更改,以修复 Windows PowerShell 中的行为问题。

  • 返回值基于 UTC 时间。
  • 该值是整数秒值(没有小数部分)。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯