时间和日期
在日常的使用过程中不可避免的我们需要进程获取时间和日期,在 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:47
PS /root>
复制代码
获取当天是本年的第几周
PS /root> Get-Date -UFormat %V
23
PS /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 day
PS /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` 对象的值来调整日期 。
评论