我可以使用以下内容在文本中添加日期:
"Foo {0:G} Foo" -f (date) #returns "Foo 2009-12-07 15:34:16 Foo"
但我希望用Unix格式的时间。
我可以通过date -UFormat %s
获得它,但我可以使用相同的语法吗?
当我使用-UFormat %s
时,我得到 1260199855,65625 ,如何删除小数?
答案 0 :(得分:14)
将结果转换为类似的int:
PS> [int][double]::Parse((Get-Date -UFormat %s))
1260172909
PS> "Foo {0:G} Foo" -f [int][double]::Parse((Get-Date -UFormat %s))
Foo 1260172997 Foo
使用Parse方法意味着将字符串解析为“文化感知”,以便为当前区域性识别适当的小数分隔符。如果您只是直接投射,PowerShell使用不变文化,这会导致任何文化的问题,其中十进制sep char不是句点。
答案 1 :(得分:6)
以下是我的表现方式:
$DateTime = (Get-Date).ToUniversalTime()
$UnixTimeStamp = [System.Math]::Truncate((Get-Date -Date $DateTime -UFormat %s))
答案 2 :(得分:6)
[int](Get-Date -UFormat %s -Millisecond 0)
答案 3 :(得分:5)
我这样做了,围捕
[System.Math]::Round((date -UFormat %s),0)
答案 4 :(得分:3)
我的解决方案:
(Get-Date -UFormat %s) -Replace("[,\.]\d*", "")
答案 5 :(得分:0)
我会截断小数点:
(date -UFormat %s).split('.')[0]