dat*_*ite 1 powershell formatting timestamp
我希望以变量[yy.mm.dd hh:mm:ss]的形式存储当前系统时间-30秒的值。 这是一个特殊的要求,因为我正在处理的日志文件具有这种格式。目前,我有以下代码,该代码可以让我以所需格式存储当前系统时间,但无法减去30秒。
$dateTime = Get-Date -f "[yy.MM.dd HH:mm:ss]"
$("Current time: " + $dateTime)
$("Current time - 30 second: " + $dateTime.AddSeconds(-31))
$("Current time - 30 second: " + $dateTime.AddSeconds(-31))上面代码的行抛出下面的错误
Method invocation failed because [System.String] does not contain a method named 'AddMinutes'.
At C:\Users\foo\log_mont.ps1:4 char:3
+ $("Current time - 30 second: " + $dateTime.AddSeconds(-31))
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
尝试这个:
$dateTime = (Get-Date).AddSeconds(-31).ToString("[yy.MM.dd HH:mm]")
请注意,这和您的原始示例均未以这种格式存储日期。他们正在创建日期的字符串表示形式。这就是为什么您无法添加秒数的原因。如果要稍后在脚本中处理日期,请将其存储为DateTime,仅在需要输出时才使用格式。例如:
$dateTime = (Get-Date).AddSeconds(-31)
# other code - maybe some date manipulation
$dateTime.ToString("[yy.MM.dd HH:mm]")
| 归档时间: | 
 | 
| 查看次数: | 2026 次 | 
| 最近记录: |