PowerShell Get-Date 格式

2025年3月17日 | 阅读 8 分钟

在本文中,我们将讨论和使用 PowerShell 的 Get-Date 格式(或日期格式)命令。日期和时间属性在整个 PowerShell 脚本中多次使用。使用 Get-Date cmdlet,我们可以检索当前机器的日期。日期的默认格式是在运行命令的本地系统上定义的。 Get-Date 命令使用多种格式和参数。在这里,我们将只关注格式化并显示不同的日期结果。

在 PowerShell 上执行所有 Get-Date cmdlet 操作之前,我们必须知道如何启动 PowerShell 工具(应用程序)。

以管理员身份启动 PowerShell

有多种方法可以以管理员身份启动 PowerShell;下面提到了一些基本方法

1. 使用 Windows 搜索栏以管理员身份运行 PowerShell

步骤 1:Windows 10 操作系统在任务栏中带有一个搜索字段。将光标指向搜索字段,然后键入“powershell”(或 PowerShell)。

PowerShell Get-Date Format

步骤 2:根据搜索结果,右键单击 Windows PowerShell以管理员身份运行。它会将您带到 Windows PowerShell 的管理员模式。

PowerShell Get-Date Format

2. 使用运行窗口以管理员身份运行 PowerShell

步骤 1:同时按 Windows + R 键,它将打开一个“运行”对话框。现在,在“运行”对话框中键入 PowerShell,然后单击“确定”按钮。

PowerShell Get-Date Format

步骤 2:步骤 1 为当前用户打开普通的 PowerShell 窗口。现在,在 PowerShell 窗口上,键入命令 start-process powershell -verb runas 并按“enter”键。

PowerShell Get-Date Format

步骤 3:上面的命令会要求您以管理员模式打开 Windows PowerShell;单击“确定”以允许,它会将 Windows PowerShell 带到管理员权限。

PowerShell Get-Date Format

日期格式化参数

以下是 PowerShell 中不同类型的日期格式

  • DisplayHint
  • 格式
  • UFormat

何时使用 Get-Date

Get-Date 命令返回一个 DateTime 对象,该对象显示您本地设备上的当前日期或您指定的日期。让我们看看当我们使用 Get-Date 命令时系统的默认格式。

PowerShell Get-Date Format

Get-Date 命令返回各种 UNIX 和 .NET 格式的字符串类型的日期和时间值,并将字符串移动到其他 cmdlet。

显示在 shell 屏幕上的输出格式基于您格式化的计算机设置。要查看您的设备日期设置,请使用 (Get-Culture).DateTimeFormat 命令;它将返回不同的日期和时间格式。


PowerShell Get-Date Format

如何使用 Get-Date 命令

命令 Get-Date 返回系统的当前日期和时间,结果以长日期和长时间格式显示。

PowerShell Get-Date Format

如果我们将 Format-List cmdlet 与 Get-Date 一起使用,我们将看到返回各种日期和时间格式的完整信息。 Get-Date 命令返回一个 DateTime 对象。 让我们看看使用 Get-Date | Format-List cmdlet 的输出


PowerShell Get-Date Format

DisplayHint

DisplayHint 参数定义了我们要在屏幕上显示的信息类型。 此参数还返回 DateTime 对象; 但是,它有三种不同的格式,包括 Date、Time 和 DateTime。 -DisplayHint 参数一次使用 Date、TimeDateTime 中的任何一个。

  • Date:它仅返回当前日期值。
  • Time:它仅返回当前时间值。
  • DateTime:它同时返回当前日期和时间值。

让我们看看使用以下 cmdlet 的输出


PowerShell Get-Date Format

格式

使用 PowerShell 命令中的 -Format 参数,您可以按照您指定的特定格式显示日期和时间。 -Format 参数接受 Microsoft .Net framework 中允许的所有值,并包含在 DateTimeFormatInfo Class 中。 有不同的格式选项可用,您可以使用这些选项根据您的要求格式化日期和时间结果。

请注意,-Format 参数返回的结果不是 DateTime 对象; 相反,它们将是一个 String 结果。 我们提到了一些标准的格式说明符信息及其简短描述,这些信息由 Microsoft 提供。

标准字符串格式说明符

下面定义了一些最常用的标准 .NET 字符串格式说明符

说明符描述
dddd返回一周中的星期几的完整名称
MM返回月份编号
dd返回两位数的月份中的某天
yyyy返回 4 位数的年份
HH:mm返回 24 小时格式的时间,不带秒
K返回与世界协调时 (UTC) 的时区偏移

例如

让我们看一个示例,使用以下 -Format 参数和几个 .NET 格式说明符来检索 .NET 格式说明符中的日期和时间


PowerShell Get-Date Format

可选格式列表

日期
d返回短日期模式
D返回长日期模式
f返回完整日期/时间模式(短时间)
F返回完整日期/时间模式(长时间)
g返回常规日期/时间(短时间)
G返回常规日期/时间(长时间)
m 或 M返回月日模式
o返回往返日期/时间模式
r 或 R返回 RFC1123 模式
s返回可排序日期/时间模式; 符合 ISO 8601
u 或 U返回可排序日期/时间模式
y 或 Y返回年月模式
时间
t返回短时间模式
T返回长时间模式

让我们逐个应用以下格式并查看它们的输出


PowerShell Get-Date Format

UFormat

UFormat 参数允许我们提及要在 Unix 格式中显示的格式。 此格式命令的语法如下 Get-Date -UFormat %\<value\>。 cmdlet -UFormat 总是返回一个 String 值的输出。 以下是由 Microsoft 提供的与 -UFormat 参数一起使用的各种说明符列表及其描述。

UFormat 说明符列表

日期和时间c以缩写形式返回日期和时间 (Wed Jan 6 18:35:23 2021)
时间pAM 或 PM
r以 12 小时格式返回时间 (08:24:43 AM)
R以 24 小时格式返回时间,不带秒 (15:32)
T 或 X以 24 小时格式返回时间 (15:32:43)
Z返回与世界协调时 (UTC) 的时区偏移
小时k 或 H以 24 小时格式返回小时 (17)
I 或 l(大写“I”,(小写 L)以 12 小时格式返回小时 (05)
分钟和秒M返回分钟 (40)
S返回秒 (04)
s返回自 1970 年 1 月 1 日 00:00:00 以来经过的秒数 (1150451174.95705)
日期D以 mm/dd/yy 格式返回日期(例如 01/18/21)
x返回区域设置的标准格式的日期(英文-美国的 06/12/21)
月份b 或 h以缩写形式返回月份名称 (Jan)
B以完整形式返回月份名称 (January)
m返回月份编号 (06)
年份C返回世纪(2021 年为 21)
g 或 y以 2 位数格式返回年份 (21)
G 或 Y以 4 位数格式返回年份 (2021)
U 或 W返回一年中的星期数 (00-52)
V返回一年中的星期数 (01-53)
Daya返回星期几的缩写名称 (Mon)
A返回星期几的全名 (Monday)
u 或 w以数字形式返回星期几(星期一 = 1)
d以 2 位数返回月份中的某天 (05)
e返回月份中的某天 - 数字前面有一个空格 ( 5)
j返回一年中的某天 - (1-366)
特殊字符n返回换行符 (\n)
t返回制表符 (\t)

带有 -UFormat 参数的 Get-Date,该参数使用各种格式说明符返回字符串输出。 例如,看看以下 -UFormat cmdlet 的结果


PowerShell Get-Date Format

以下定义了上述 UFormat 说明符如何返回字符串值

说明符定义
%A返回星期几的全名 (Wednesday)
%m返回月份编号 (01)
%d以 2 位数返回月份中的某天 (06)
%Y以 4 位数格式返回年份 (2021)
%R以 24 小时格式返回时间,不带秒 (21:38)
%Z返回与世界协调时 (UTC) 的时区偏移 (+05)。

计算并显示日期在一年中的哪一天 (Get-Date -Year 2021 -Month 12 -Day 31).DayOfYear

要计算日期在一年中的哪一天,Get-Date 使用三个参数来确定日期。 这些参数是 -Year、-Month-Day。 其命令包含在括号内,以便 DayofYear 属性评估输出结果。 例如,计算一年中给定日期的总天数。


PowerShell Get-Date Format

检查日期是否针对夏令时进行了调整

要检查日期是否针对夏令时进行了调整,需要一个布尔方法。 例如


PowerShell Get-Date Format

在上面的命令中,我们使用变量 $DST 来存储 Get-Date 的结果。 变量 $DST 调用 IsDaylightSavingTime() 方法来测试日期是否针对夏令时进行了调整。

将当前时间转换为 UTC

ToUniversalTime() 方法用于将本地系统的当前时间转换为世界协调时 (UTC)。 让我们看一个将当前时间转换为 UTC 偏移的示例。 首先,我们将获取带有 UTC 的当前日期和时间; 之后,我们将其转换为世界时。


PowerShell Get-Date Format

Get-Date 命令使用 -UFormat 参数和一些格式说明符来返回本地系统的当前日期和时间。格式说明符 %Z 指定协调世界时 (Universal Time Coordinate) 偏移量为 +05

变量 $Time 存储 Get-Date 返回的当前日期和时间结果。返回的值 ($Time) 调用 ToUniversalTime() 方法将本地系统的当前日期和时间转换为 UTC 偏移量。

使用 Get-Date -Format 创建时间戳

要使用 Get-Date -Format 创建时间戳,让我们看看下面的 cmdlet 示例


PowerShell Get-Date Format

在上面的示例中,格式说明符为输入目录名创建一个时间戳字符串对象。此时间戳包含日期、时间和 UTC 偏移量的值。

在上面的命令中,变量 $timestamp 存储 Get-Date 命令的结果。 Get-Date 使用 Format 参数和格式说明符 o,它创建一个小写的时间戳字符串对象。

该对象通过管道发送回 ForEach-Object,变量 $_ 代表当前的管道对象。时间戳字符串值由冒号指定,这些冒号被句点替换。

New-Item 使用 -Path 参数来确定新创建目录的位置。路径中包含的变量 $timestamp 表示目录名称,-Time 参数指示创建一个目录。

PowerShell Get-Date Format
下一主题#