PowerShell 用 Get-Date 和 [datetime] 类型直接处理日期时间:格式化输出、Parse/ParseExact 解析字符串、点属性提取年月日等字段、AddXxx 方法加减时间,全部系统自带无需模块。PowerShell 处理日期和时间戳非常直接,核心是 `Get-Date` 命令和 `[datetime]` 类型。不需要额外模块,系统自带就能完成格式化、提取、加减、解析等常见任务。
用 Get-Date 获取并格式化当前时间
最常用的是输出当前时间,并按需调整显示格式:
-
Get-Date输出本地长格式(如:Tuesday, July 21, 2026 3:16:45 AM) -
Get-Date -Format "yyyy-MM-dd HH:mm:ss"输出标准字符串(2026-07-21 03:16:45) -
Get-Date -UFormat "%Y-%m-%d %H:%M"使用 Unix 风格格式符(2026-07-21 03:16)
注意:-Format 参数用 .NET 格式字符串(如 yyyy、MM、dd),而 -UFormat 用 Unix 符号(如 %Y、%m、%d),两者不能混用。
从字符串解析成日期对象
遇到日志或文件名里的日期文本(比如 "20260721_0316" 或 "21/07/2026"),可用 [datetime]::Parse() 或更精确的 [datetime]::ParseExact():
-
[datetime]::Parse("2026-07-21 03:16:45")自动识别常见格式 -
[datetime]::ParseExact("21072026", "ddMMyyyy", $null)指定格式模板,避免歧义
失败时会报错,建议配合 try/catch 或先用 [datetime]::TryParse() 安全判断。
提取年月日、星期、小时等具体部分
拿到 [datetime] 对象后,直接点属性即可读取结构化信息:
-
(Get-Date).Year→ 2026 -
(Get-Date).DayOfWeek→ Tuesday(也可用.DayOfWeek.value__得数字 2) -
(Get-Date).Hour→ 3(24 小时制,凌晨为 0–5) -
(Get-Date).DayOfYear→ 当前是今年第 202 天
加减时间生成新时间戳
用 .AddXxx() 方法快速计算偏移时间,支持正负值:
-
(Get-Date).AddDays(-7)→ 一周前的此时 -
(Get-Date).AddHours(2.5)→ 2 小时 30 分钟后 -
(Get-Date).AddMonths(1)→ 下个月同日(自动处理天数溢出,如 1 月 31 日 +1 月 → 2 月 28 日)
这些方法返回新的 [datetime] 对象,原时间不变,适合链式调用或赋值给变量。











