使用 PowerShell 获取日期和时间

Marion Paul Kenneth Mendoza 2023年1月30日
  1. 在 PowerShell 中获取日期和时间
  2. 在 PowerShell 中使用 DateTime 方法的日期运算
  3. 在 PowerShell 中比较日期
  4. 在 PowerShell 中将字符串转换为 DateTime 对象
  5. PowerShell 中的日期时间方法
  6. 在 PowerShell 中格式化 DateTime 对象
使用 PowerShell 获取日期和时间

PowerShell 可以做很多事情,并且像任何合适的编程语言一样,它几乎可以做任何我们想要的日期和时间。使用 Windows PowerShell Get-Date cmdlet 和其他技术,你可以找到今天的日期、明天的日期、格式化日期等。

本文将解释我们如何获取当前日期和时间以及 DateTime 对象如何在 PowerShell 中工作。

在 PowerShell 中获取日期和时间

使用 Windows PowerShell 发现当前日期和时间的方法之一是使用 Get-Date 命令。此 cmdlet 显示当前日期和时间。

Get-Date

输出:

Wednesday, 9 March 2022 8:14:34 pm

默认情况下,Get-Date 命令看起来只返回当前日期和时间,但实际上,它会产生更多信息。要查找此信息,请通过管道输出下方的 Format-List cmdlet。

Get-Date | Format-List

输出:

DisplayHint : DateTime
Date        : 08/03/2022 12:00:00 am
Day         : 8
DayOfWeek   : Wednesday
DayOfYear   : 68
Hour        : 20
Kind        : Local
Millisecond : 671
Minute      : 18
Month       : 3
Second      : 1
Ticks       : 637824538816714508
TimeOfDay   : 20:18:01.6714508
Year        : 2022
DateTime    : Wednesday, 9 March 2022 8:18:01 pm

你还可以使用 Get-Member 命令通过运行 Get-Date | 查找所有对象属性。获取成员命令。

如果我们检查对象的类型 Get-Date | Get-Member 返回时,你会注意到 System.DateTime 对象类型。这个类公开了我们看到的所有属性和方法。

我们可以使用下面的命令来发现它的对象类型。

(Get-Date).GetType().FullName

输出:

System.DateTime

一旦我们看到所有可用的属性,我们就可以用点 (.) 表示法来引用它们,如下所示。

(Get-Date).Year
(Get-Date).DayOfWeek
(Get-Date).Month
(Get-Date).DayOfYear

输出:

2022
Wednesday
3
68

在 PowerShell 中使用 DateTime 方法的日期运算

Get-Date 返回的 System.DateTime 对象具有各种方法,你可以调用这些方法来添加或删除时间块。例如,如果我们运行 Get-Date | Get-Member,我们将看到以 Add 开头的不同技术。

Get-Date | Get-Member | Where {$_.Name -like "Add*"}

输出:

   TypeName: System.DateTime

Name            MemberType Definition
----            ---------- ----------
Add             Method     datetime Add(timespan value)
AddDays         Method     datetime AddDays(double value)
AddHours        Method     datetime AddHours(double value)
AddMilliseconds Method     datetime AddMilliseconds(double value)
AddMinutes      Method     datetime AddMinutes(double value)
AddMonths       Method     datetime AddMonths(int months)
AddSeconds      Method     datetime AddSeconds(double value)
AddTicks        Method     datetime AddTicks(long value)
AddYears        Method     datetime AddYears(int value)

你将在以下命令中看到一些调用这些方法及其输出的内容。

#Adding 8 days to the current date
(Get-Date).AddDays(8)

#Adding 3 hours to the current time
(Get-Date).AddHours(3)

#Adding five years to the current date
(Get-Date).AddYears(5)

#Subtracting 7 days from the current date using a negative number.
(Get-Date).AddDays(-7)

输出:

Thursday, 17 March 2022 8:28:57 pm
Wednesday, 9 March 2022 11:28:57 pm
Tuesday, 9 March 2027 8:28:57 pm
Tuesday, 1 March 2022 8:28:57 pm

在 PowerShell 中比较日期

你还可以使用标准 PowerShell 运算符比较日期。例如,PowerShell 知道日期何时小于(早于)或大于(晚于)另一个日期。

要比较日期,请使用 Get-Date 创建两个 DateTime 对象,或者使用 [DateTime] 转换字符串,然后使用标准 PowerShell 运算符,如 -lt-gt。我们可以在下面看到一个比较日期的简单示例。

#Declaring the date
$Date1 = (Get-Date -Month 10 -Day 14 -Year 2021)
$Date2 = Get-Date
$Date1 -lt $Date2

输出:

True

在 PowerShell 中将字符串转换为 DateTime 对象

要将字符串变量转换为 DateTime 对象,请在字符串(或变量)前加上 [DateTime] 数据类型。当我们这样做时,Windows PowerShell 会尝试将字符串解释为日期和时间,然后提供此对象类型上可用的所有属性和方法。

$Date = "2020-09-07T13:35:08.4780000Z"
[DateTime]$Date

输出:

Monday, 7 September 2020 5:35:08 pm

PowerShell 中的日期时间方法

操纵 DateTime 对象如何在控制台中显示的一种方法是对 DateTime 对象使用多种方法。DateTime 对象有四种方法来操作格式。

  1. ToLongDateString()
  2. ToShortDateString()
  3. ToLongTimeString()
  4. ToShortTimeString()

让我们看一个使用 ToShortDateString()ToShortTimeString() 方法的示例。

[DateTime]$Date = $Date
$date.ToShortDateString() + " " + $date.ToShortTimeString()

输出:

9/7/2020 7:05 PM

在 PowerShell 中格式化 DateTime 对象

要更改 DateTime 对象的日期和时间格式,请使用 Get-Date 命令生成对象并使用 -Format 参数更改布局。 -Format 参数接受字符串,表示日期/时间字符串的外观。

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

输出:

Wednesday 09-03-2022 21:21 +04:00
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell DateTime