时间和日期
在日常的使用过程中不可避免的我们需要进程获取时间和日期,在 PowerShell 中这个指令是 Get-Date 。
接下来我们看一下这个指令。
PS /root> Get-Date
2021年6月12日星期六 下午8:00:02
PS /root>
复制代码
如果要对获取到的时间进行格式化可以使用 -format 参数来进行。对于时间有如下的映射关系
yyyy 年 MM 月 dd 日 h 小时(12 小时制)H 小时(24 小时制)m 分钟 s 秒
接下来对当前的时间进行格式化,
PS /root> Get-Date -format "yyyy-MM-ddTHH:mm:ss"2021-06-12T20:09:47PS /root>
复制代码
获取当天是本年的第几周
PS /root> Get-Date -UFormat %V23PS /root>
复制代码
如果要在 Write-Host 中输出时间,可以使用如下方式
PS /root> Write-Host "$(Get-Date -format "yyyy-MM-ddTHH:mm:ss") is a happy day"
2021-06-12T20:13:30 is a happy dayPS /root>
复制代码
另外获取昨天、明天、前几天,后几天可以使用如下方法
# 输出昨天PS /root> (Get-Date).adddays(-1)
2021年6月11日星期三 下午8:15:11 # 输出3 天前PS /root> (Get-Date).adddays(-3)
2021年6月9日星期一 下午8:15:32 # 输出明天PS /root> (Get-Date).adddays(1)
2021年6月13日星期五 下午8:15:37 # 输出3 天后PS /root> (Get-Date).adddays(3)
2021年6月15日星期日 下午8:15:41 # 输出3 小时后PS /root> (Get-Date).addHours(3)
2021年6月12日星期日 下午11:15:41 # 输出3 分钟后PS /root> (Get-Date).addMinutes(3)
2021年6月12日星期日 下午8:18:41 # 输出10 秒钟后PS /root> (Get-Date).addSeconds(10)
2021年6月12日星期日 下午8:15:51
复制代码
如果在这个时候需要格式化可以使用如下方式
PS /root> (Get-Date).addhours(3).ToString('yyyy-MM-dd HH:mm:ss')2021-06-12 23:24:18
复制代码
或者使用管道的方式也可以。
PS /root> (Get-Date).adddays(-1)| get-date -format "yyyy-MM-dd HH:mm:ss"2021-06-12 23:24:18
复制代码
如果需要单独获取日期或者时间可以使用如下方式
# 获取日期Get-Date -displayHint Date# 获取时间Get-Date -displayHint Time# 获取日期和时间Get-Date -displayHint datetime
复制代码
除了获取时间,我们还需要修改时间,修改时间我们需要使用 Set-Date,
简单粗暴的指定具体时间如下:
Set-Date "2021-06-13 09:20:28"
复制代码
如果是基于当前时间进行调整,一般情况下需要将配合 Get-Date 来一起进行。
# 时间往后调一天Set-Date -Date (Get-Date).AddDays(1)# 时间往前调一天Set-Date -Date (Get-Date).AddDays(-1)
复制代码
接下来我们看一个例子:
此命令设置时间为系统当前时间的 10 分钟之前 . 此命令使用参数 Adjust 指定改变的时间间隔 . 改变的时间 ( 负 10 分钟 ) 表示为本地的标准时间格式
我们看另外一个实现相同功能的例子
> $timeToAdd = New-TimeSpan -Minutes 10> Set-Date -adjust $timeToAdd
复制代码
这些命令可以将系统时间提前 10 分钟 。 第一个命令使用 `New-Timespan` 创建一个 10 分钟时间间隔的 `TimeSpan` 对象 , 然后将 `TimeSpan` 对象存储在 `$timeToAdd` 变量中 ,第二个命令使用 `Set-Date` 参数 `Adjust`, 根据变量 `$timeToAdd` 中 `TimeSpan` 对象的值来调整日期 。
评论