Get-Date 帮助信息

本文介绍PowerShell中的Get-Date命令的使用方法,包括其语法、参数及示例,帮助读者了解如何获取和格式化日期时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下说明是翻译 PowerShell : help Get-Date 产生的帮助信息 .
译者 : Edengundam( 马涛 )
 
Get-Date
 
大纲
取得当前的日期和时间 .
 
语法
Get-Date [[-date] <DateTime>] [-displayHint {<Date> | <Time> | <DateTime>}] [-format <string>] [-year <int>] [-month <int>] [-day <int>] [-hour <int>] [-minute <int>] [-second <int>] [<CommonParameters>]
 
Get-Date [[-date] <DateTime>] [-displayHint {<Date> | <Time> | <DateTime>}] [-uFormat <string>] [-year <int>] [-month <int>] [-day <int>] [-hour <int>] [-minute <int>] [-second <int>] [<CommonParameters>]
 
详细描述
取得当前的日期和时间 .
 
参数
 
-date <DateTime>
指定日期和时间 . 默认情况下 , Get-Date 取得当前系统日期和时间 .
 
强制参数 ?
false
参数位置 ?
1
默认值
 
允许从管道绑定输入 ?
true ( 根据值 , 根据属性名 )
允许通配符扩展 ?
false
 
-displayHint <DisplayHintType>
确定日期和时间中哪些元素被显示 . ( 此选项不影响 Get-Date 返回的 DateTime 对象 .)
 
合法值 :
 
·          date: 只显示日期
·          time: 只显示时间
·          datetime: 显示日期和时间
 
如下列出此参数可接受的值 :
 
·          Date
·          Time
·          DateTime
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-format <string>
根据 .Net 格式的格式说明符显示日期和时间 . <String> 表示格式说明符 . MSDN 中关于 System.Globalization.DateTimeFormatInfo 类的主题包含了可以使用的格式说明符 .
 
当你使用 -format , Windows PowerShell 只会根据你指定的日期格式取得所需要的 DateTime 对象的属性 . 因此 , DateTime 对象上的某些属性和方法将无法使用 . ( 译注 : 此参数导致 Get-Date 返回字符串 )
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-uFormat <string>
按照 Unix 格式显示日期和时间 . 附加注释中包含关于格式说明符的列表 .
 
当你使用 -uformat , Windows PowerShell 只会根据你指定的日期格式取得所需要的 DateTime 对象的属性 . 因此 , DateTime 对象上的某些属性和方法将无法使用 . ( 译注 : 此参数导致 Get-Date 返回字符串 )
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-year <int>
指定显示的年份 . 输入从 1 9999 的值 . 用此值代替当前年进行显示 .
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-month <int>
指定显示的月份 . 输入从 1 12 的值 . 用此值代替当前月份进行显示 .
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-day <int>
指定显示的日期 . 输入从 1 31 的值 . 用此值代替当前日期进行显示 .
 
如果指定的值大于该月份的天数 , Windows PowerShell 会将该天数添加到此月份并显示结果 . 例如 : "get-date -month 2 -day 31" 将会显示 "March 3", 而非 "February 31".
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-hour <int>
指定显示的小时数 . 输入从 1 23 的值 . 用此值代替当前小时进行显示 .
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-minute <int>
指定显示的分钟数 . 输入从 1 59 的值 . 用此值代替当前分钟进行显示 .
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
-second <int>
指定显示的秒数 . 输入从 1 59 的值 . 用此值代替当前秒进行显示 .
 
强制参数 ?
false
参数位置 ?
named
默认值
 
允许从管道绑定输入 ?
false
允许通配符扩展 ?
false
 
< 公共参数 >
此命令支持公共参数 : -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息 , 输入 , "get-help about_commonparameters".
 
注意
 
更多信息 , 输入 "Get-Help Get-Date -detailed". 需要技术信息 , 输入 "Get-Help Get-Date -full".
 
如果需要为该命令提供多个参数 , 请使用逗号进行分隔 . 例如 , "<parameter-name> <value1>, <value2>".
 
Uformat Values :
 
下面是 -Uformat 参数的值 . 命令的格式为 :
 
get-date -uformat %<value>
 
例如 :
 
get-date -format %d
 
Date-Time:
·              日期时间完整形式 ( 默认 ) (Friday, June 16, 2006 10:31:27 AM)
·          c 日期时间缩写形式 (Fri Jun 16 10:31:27 2006)
 
Date:
·          D mm/dd/yy 格式的日期 (06/14/06)
·          x   locale 设置对应的标准日期格式 (09/12/07 for English-US)
 
Year:
·          C   世纪 (20 for 2006)
·          Y   四位数字格式的年 (2006)
·          y    两位数字格式的年 (06)
·          G   'Y'
·          g   'y'
 
Month:
·          b   缩写的月份名 (Jan)
·          B   完整的月份名 (January)
·          h   'b'
·          M   数值形式的月份 (06)
 
Week:
·          一年中的周数 (00-52)
·          V   一年中的周数 (01-53)
·          U   'W'
 
Day:
·          a   一周中的第几天 ( 缩写形式 ) (Mon)
·          A   一周中的第几天 ( 完整的形式 ) (Monday)
·          u   一周中的第几天 ( 数值 ) (Monday = 1)
·          d    月份中的第几天 ( 两位数字格式 ) (05)
·          e   月份中的第几天 ( 不足两位前导空格 ) ( 5)
·          j   一年中的第几天 - (1-366)
·          w   'u'
 
Time:
·          p   AM PM
·          r   十二小时小时为单位的时间格式 (09:15:36 AM)
·          R   二十四小时为单位的时间格式 ( 不显示秒数 ) (17:45)
·          T   二十四小时为单位的时间格式 (17:45:52)
·          X   'T'
·          Z   距离 UTC 的时区便宜 (-07)
 
Hour:
·          H   二十四小时格式下的小时数 (17)
·          十二小时格式下的小时数 (05)
·          k   'H'
·          l   'I' (Upper-case I = Lower-case L)
 
Minutes & Seconds:
·          m   分钟 (35)
·          S   (05)
·          s   1970 1 1 00:00:00 开始 , 流逝的秒数 (1150451174.95705)
 
Special Characters:
·          n   换行字符 (/n)
·          t   Tab 自如 (/t)
 
1
 
C:/PS>get-date -DisplayHint date
 
此参数取得 DateTime 对象 , 但是只显示日期 . 它使用参数 -DisplayHint 指示应该只显示日期 .
 
Tuesday, June 13, 2006
 
2
 
C:/PS>get-date -format g
 
此命令取得当前的日期和时间 , 并将其格式为短日期和短时间格式 . 它使用了 .NET 的格式说明符 "g" (General ( 短日期和短时间 )) 指定格式 .
 
6/13/2006 12:43 PM
 
3
 
C:/PS>get-date -uformat "%Y / %m / %d / %A / %Z"
 
此命令取得当前日期和时间 , 并将其格式化为命令指定格式 . 此示例中 , 格式中包含了完整的年份 (%Y), 两位数字的月份 (%m), 日期 (%d), 一周第几天的完整名称 (%A) 和相对 UTC 时间的偏差 ("Zulu").
 
2006 / 06 / 13 / Tuesday / -07
 
4
 
C:/PS>(get-date -year 2000 -month 12 -day 31).dayofyear
 
此命令显示当前日期在一年中的第几天 . 例如 , 12 31 日是 2006 年的第 365 , 但是对于 2000 , 就是第 366 .
 
366
 
5
 
C:/PS>$a = get-date
$a.IsDaylightSavingTime()
 
此命令用来告知当前日期和时间是否已经调整为当前区域设置对应的夏令时 .
 
第一个命令将会创建名为 $a 的变量 , 然后将 Get-Date 返回的对象赋值给此变量 . 接下来它调用 $a 中对象上的方法 IsDaylightSavingTime.
 
要查看 DateTime 对象的属性和方法 , 键入 "get-date get-member".
 
True
 
6
 
C:/PS>$a = get-date
$a.ToUniversalTime()
 
这些命令将当前日期时间转换为 UTC 时间 .
 
第一个命令创建名为 $a 的变量 , 然后将 Get-Date 返回的对象赋值给此变量 . 接下来它调用 $a 中对象上的方法 ToUniversalTime.
 
Tuesday, June 13, 2006 8:09:19 PM
 
7
 
C:/PS>$a = get-wmiobject win32_bios -computer server01
 
$a | format-list -property Name, @{Label="BIOS Age"; `
Expression={(get-date) - $_.ConvertToDateTime($_.ReleaseDate)}}
 
Windows Management Instrumentation (WMI) 使用了与 Get-Date 返回的 .NET 对象不同的日期时间对象 . 要在使用 Get-Date 返回日期时间信息的命令中使用 WMI 返回的日期时间信息 , 你必须调用 ConvertToDateTime 方法将 WMI CIM_DATETIME 对象转换为一个 .NET DateTime 对象 .
 
示例中的命令显示了一台远程计算机 Server01 上的 BIOS 名称和 age. 第一条命令使用 Get-WmiObject cmdlet 取得 Server01 Win32_BIOS 类的实例 , 并将其存储在变量 $a .
 
第二个命令使用管道运算符 (|) 将存储在 $a 中的 WMI 对象发送给 Format-List cmdlet. Format-List 命令的 -Property 参数指定了两个显示列表的属性 : "Name" "BIOS Age". 属性 "BIOS Age" 是通过一个哈希表指定的 . 此哈希表中包含 Label ( 它指定属性的名称 ), 以及 Expression ( 包含计算 BIOS age 的表达式 ). Expression 使用了 ConvertToDateTime 方法将 ReleaseDate 实例转化为 .NET DateTime 对象 . 然后 , 它被 Get-Date cmdlet 返回的当前日期 ( 不指定参数时 , Get-Date 返回当前日期时间 ) 减去 .
 
反引号 (`) Windows PowerShell 中表示行继续符 .
 
Name : Default System BIOS
BIOS Age : 1345.17:31:07.1091047
 
相关链接
Set-Date
New-TimeSpan
 
<think>嗯,用户让我解释这个PowerShell命令。首先,我需要拆解每个部分的功能。命令是Get-ChildItem,路径是cert:\LocalMachine\My,这部分应该是在获取本地计算机的个人证书存储中的证书。接下来是Where-Object过滤,条件是NotAfter小于当前日期加两个月,也就是找出两个月内过期的证书。然后排序和格式化输出。 用户可能是系统管理员,负责管理证书,需要监控即将过期的证书,及时更新或更换。可能他们不太熟悉PowerShell的语法,或者想确认命令的正确性。要注意的是,原命令中的-1t可能有误,应该是-lt,也就是小于的意思。这个拼写错误会影响命令执行,必须指出。另外,Format-Table后面的参数写法是否正确?比如NotAfter后面的冒号,可能用户输入有误,需要纠正。 还要解释每个cmdlet的作用,比如Get-ChildItem在证书路径下的应用,Where-Object过滤的逻辑,Sort-Object排序,以及Format-Table如何显示结果。可能用户需要了解如何调整时间范围或输出格式,所以给出调整月份的例子会很有帮助。同时提醒他们注意权限问题,可能需要管理员权限才能访问某些证书存储。最后,强调正确处理证书的重要性,避免服务中断。</think>这个命令是一个PowerShell脚本,用于查询和管理本地计算机的证书存储。下面分步骤解释其功能: --- ### **1. 命令分解** ```powershell Get-ChildItem -path cert:\LocalMachine\My | Where { $_.NotAfter -1t $(get-date).AddMonths(2) } | Sort NotAfter | Format-Table Subject, Thumbprint, NotAfter ``` --- ### **2. 逐部分解析** #### **(1) `Get-ChildItem -path cert:\LocalMachine\My`** - **作用**:访问本地计算机的证书存储区。 - `cert:\` 是PowerShell的证书驱动器。 - `LocalMachine\My` 表示本地计算机的“个人”证书存储(存储用户或应用程序的私钥证书)。 - **等价操作**:类似在Windows中打开“证书管理器”查看 `计算机账户` → `个人` 下的证书。 #### **(2) `Where { $_.NotAfter -1t $(get-date).AddMonths(2) }`** - **作用**:筛选证书。 - `$_.NotAfter` 表示证书的过期时间。 - `$(get-date).AddMonths(2)` 获取当前日期加2个月后的时间。 - **问题**:`-1t` 是无效语法,此处应为 `-lt`(即 *Less Than*,表示“小于”)。 - **修正后条件**:筛选出 `过期时间 < 当前时间 + 2个月` 的证书(即未来2个月内会过期的证书)。 #### **(3) `Sort NotAfter`** - **作用**:按证书的过期时间 (`NotAfter`) 升序排序(最早的过期时间排在最前面)。 #### **(4) `Format-Table Subject, Thumbprint, NotAfter`** - **作用**:以表格形式输出以下字段: - `Subject`:证书主体(通常包含域名或用途)。 - `Thumbprint`:证书唯一指纹(SHA1哈希值)。 - `NotAfter`:证书过期时间。 --- ### **3. 命令完整功能** **目标**:列出本地计算机“个人”证书存储中,将在未来2个月内过期的证书,并按过期时间排序后以表格展示关键信息--- ### **4. 典型应用场景** - 系统管理员定期检查即将过期的证书,避免因证书过期导致服务中断(如HTTPS网站、API身份验证等)。 - 审计人员验证证书有效期是否符合安全策略。 --- ### **5. 注意事项** - **权限要求**:需要以管理员身份运行PowerShell才能访问 `LocalMachine` 证书存储。 - **语法修正**:将 `-1t` 改为 `-lt`。 - **时间调整**:若需修改时间范围(如3个月),可将 `AddMonths(2)` 改为 `AddMonths(3)`。 --- ### **6. 改进后的命令** ```powershell Get-ChildItem -Path cert:\LocalMachine\My | Where-Object { $_.NotAfter -lt (Get-Date).AddMonths(2) } | Sort-Object NotAfter | Format-Table Subject, Thumbprint, NotAfter ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值