[玩转系统] 实用的 PowerShell 获取日期,揭开日期和时间的神秘面纱
作者:精品下载站 日期:2024-12-14 13:03:36 浏览:13 分类:玩电脑
实用的 PowerShell 获取日期,揭开日期和时间的神秘面纱
PowerShell 可以做很多事情,并且像任何优秀的编程语言一样,它几乎可以对日期执行任何您想要的操作。使用 PowerShell 获取日期命令和其他技术,您可以查找今天的日期、明天的日期、格式化日期等等。
在本文中,您将了解有关日期和 PowerShell 的所有内容!
先决条件
要按照本文中的示例进行操作,请确保您提前满足以下先决条件:
- Windows PowerShell v5 或更高版本 - 即使您使用的是早期版本,所有示例仍然可能正常工作。
使用 PowerShell 查找当前日期
使用 PowerShell 发现当前日期的最简单方法之一是使用 Get-Date
cmdlet。该命令显示当前日期和时间,如下所示。
PS> Get-Date
Sunday, November 22, 2020 1:25:57 AM
默认情况下,PowerShell Get Date 命令看起来只返回当前日期和时间,但实际上,它实际上返回了更多信息。要查找此信息,请将输出通过管道传输到 Format-List
cmdlet,如下所示。
PS> Get-Date | Format-List
DisplayHint : DateTime
Date : 11/22/2020 12:00:00 AM
Day : 22
DayOfWeek : Sunday
DayOfYear : 327
Hour : 1
Kind : Local
Millisecond : 163
Minute : 26
Month : 11
Second : 2
Ticks : 637416051621635773
TimeOfDay : 01:26:02.1635773
Year : 2020
DateTime : Sunday, November 22, 2020 1:26:02 AM
您还可以使用 Get-Member
cmdlet 通过运行 Get-Date | 来查找所有对象属性。还获取-Member -MemberType Properties
。
如果您检查 Get-Date
返回的对象类型,您会发现它是 System.DateTime
对象类型。此类公开了您看到的所有不同属性和方法。您可以使用 Get-Member
或使用 GetType()
来发现它的对象类型,如下所示。
PS> (Get-Date).GetType().FullName
System.DateTime
一旦您看到所有可用的属性,您就可以使用点符号引用它们,如下所示。
PS> (Get-Date).Year
2020
PS> (Get-Date).DayOfWeek
Sunday
PS> (Get-Date).Month
11
PS> (Get-Date).DayOfYear
327
点符号对你来说有点太“devvy”了吗?如果是这样,您还可以使用 DisplayHint
参数来实现相同的结果。
PS> Get-Date -DisplayHint Date
Sunday, November 22, 2020
PS> Get-Date -DisplayHint Time
2:29:35 AM
PS> Get-Date -DisplayHint DateTime
Sunday, November 22, 2020 2:29:39 AM
使用 PowerShell Get Date 是查找当前日期和各种属性的最简单方法,但您还可以做更多事情!
使用 PowerShell 进行日期算术
假设您需要知道过去或未来一定天数、年数或分钟数的日期和/或时间。您可以使用方法找到此信息。
使用 DateTime
方法
PowerShell Get Date 命令返回的 System.DateTime 对象具有多种可以调用的方法来添加或删除时间块。如果您运行 Get-Date | Get-Member,您将看到以 Add
开头的各种方法。
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
PS> (Get-Date).AddDays(8)
Monday, November 30, 2020 1:59:39 AM
#Adding 3 hours to the current time
PS> (Get-Date).AddHours(3)
Sunday, November 22, 2020 4:59:51 AM
#Adding five years to the current date
PS> (Get-Date).AddYears(5)
Saturday, November 22, 2025 2:00:11 AM
#Subtracting 8 days from the current date using a negative number.
PS> (Get-Date).AddDays(-8)
Saturday, November 14, 2020 2:02:43 AM
使用新时间跨度
如果您想知道两个日期之间的差异怎么办?不只是添加特定数量的时间块?执行此操作的一种方法是使用 New-Timespan
cmdlet。 New-Timespan
cmdlet 生成表示日期/时间差异或跨度的 TimeSpan
对象。
通过提供Start
和End
日期/时间作为参数来使用New-TimeSpan
cmdlet。例如,如果您想查找 2020 年 11 月 23 日午夜与 2020 年 12 月 31 日午夜之间的差异,您可以使用以下代码片段。
使用 TimeSpan
对象,您可以找到几乎任何您想要的增量的日期/时间差异。
PS> $StartDate = Get-Date -Month 11 -Day 23 -Year 2020 -Hour 00 -Minute 00 -Second 00
PS> $EndDate = Get-Date -Month 12 -Day 31 -Year 2020 -Hour 00 -Minute 00 -Second 00
PS> $StartDate
Monday, November 23, 2020 12:00:00 AM
PS> $EndDate
Thursday, December 31, 2020 12:00:00 AM
PS> New-TimeSpan -Start $StartDate -End $EndDate
Days : 38
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 672
Ticks : 32832006722080
TotalDays : 38.0000077801852
TotalHours : 912.000186724444
TotalMinutes : 54720.0112034667
TotalSeconds : 3283200.672208
TotalMilliseconds : 3283200672.208
比较日期
您不仅可以找到日期和时间的差异,还可以使用标准 PowerShell 运算符进行比较。 PowerShell 知道某个日期何时“小于”(早于)或“大于”(晚于)另一个日期。
要比较日期,只需使用 PowerShell Get Date 命令创建两个 DateTime
对象,或者使用 [DateTime]
转换字符串,然后使用标准 PowerShell 运算符(例如 lt
)即可代码>或gt。
您可以在下面看到比较日期的简单示例。
#Declaring the date
PS> $Date1 = (Get-Date -Month 11 -Day 14 -Year 2020)
PS> $Date2 = Get-Date
PS> $Date1 -lt $Date2
True
将字符串转换(转换)为 DateTime 对象
PowerShell 还可以以各种格式显示日期。例如,假设您有一个 CSV 文件或电子表格,其中包含按照下面 date_time_utc
列中所示格式定义的各种日期。当前格式为 YYYY-MM-DDThh:mm:ss.0000000Z
。
您想要解析此文件并查找日期为 7 天或更早的所有行。
默认情况下,PowerShell 不知道 2020-09-07T13:35:08.4780000Z
是日期和时间;它只是认为这是一个简单的字符串。为了让 PowerShell 理解,您必须首先将其转换为 DateTime
对象,如 Get-Date
返回。
要将字符串转换为DateTime
对象,请在字符串(或变量)前面加上[DateTime]
。当您执行此操作时,PowerShell 会尝试将该字符串解释为日期和时间,然后为您提供该对象类型上可用的所有属性和方法。
PS> $Date = "2020-09-07T13:35:08.4780000Z"
PS> [DateTime]$Date
Monday, September 07, 2020 1:35:08 PM
使用 PowerShell 获取日期:PowerShell 日期格式
现在您已经了解了使用日期的基本方法,是时候深入研究该主题了。让我们尝试一下使用不同的格式来显示日期。
每当您运行 PowerShell Get Date 命令时,您都会看到类似 Monday, September 07, 2020 1:35:08 PM
的输出。此输出实际上是一个具有属性和方法的 DateTime
对象;不是一个简单的字符串。但是,您可以将此 DateTime
对象转换为字符串,并使用各种日期格式化方法以不同方式表示它。
日期时间
方法
更改 DateTime
对象显示方式的一种方法是使用 DateTime
对象上的方法。 DateTime
对象有四种方法可用于更改格式:
ToLongDateString()
ToShortDateString()
ToLongTimeString()
ToShortTimeString()
您可以在下面查看使用 ToShortDateString()
和 ToShortTimeString()
方法的示例。
PS> [DateTime]$Date = $Date
PS> $date.ToShortDateString() + " " + $date.ToShortTimeString()
9/7/2020 7:05 PM
格式
参数
更改 DateTime
对象的日期格式的一种方法是使用 Get-Date
生成对象并使用 Format
参数更改格式。 Format
参数接受一个字符串,每个字符代表日期/时间字符串的外观。
您可以查看可与 Format
参数一起使用的字符的一些示例。
#To display full date pattern with short time pattern
PS> Get-Date -Format f
Sunday, November 22, 2020 4:26 AM
#To display full date pattern with long time pattern
PS> Get-Date -Format F
Sunday, November 22, 2020 4:26:31 AM
#To display short date pattern
PS> Get-Date -Format d
11/22/2020
#To display long date pattern
PS> Get-Date -Format D
Sunday, November 22, 2020
#Year month pattern
PS> Get-Date -Format Y
November 2020
## Combining format characters
PS> Get-Date -Format "dddd dd-MM-yyyy HH:mm K"
Sunday 22-11-2020 03:41 +05:30
查看 Microsoft 文档,了解可与 Format
参数一起使用的所有字符的完整详细信息。
一旦使用 Format
参数,您就会看到 Get-Date
不再返回 DateTime
对象,而是字符串。
PS> (Get-Date -Format D).GetType().FullName
System.String
UFormat
参数
与 Format
参数类似,您还有一个带有 Get-Date
cmdlet 的 UFormat
参数。 UFormat
参数允许您使用 UNIX 日期格式来定义日期格式。
UFormat
参数与 Format
参数类似,您可以组合日期格式字符来更改日期作为字符串返回的方式。例如,尝试以下格式并查看返回的内容。
PS> Get-Date -UFormat %A
PS> Get-Date -UFormat %b
PS> Get-Date -UFormat %B
您还可以组合这些日期格式字符。下面的代码片段使用 d
、m
和 Y
字符以 dd-mm-yyyy 格式返回日期,并且
使用r
字符返回使用时区t
字符的12 小时格式的时间。
PS> Get-Date -UFormat "%d-%m-%Y %r %Z"
22-11-2020 06:10:55 PM +05
查看 Microsoft 文档,了解可与 UFormat
参数一起使用的所有字符的完整详细信息。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag