我可以使用下面的附加一个日期到文本:
"Foo {0:G} Foo" -f (date) #returns "Foo 2009-12-07 15:34:16 Foo"
但是我想要Unix的时间,我可以通过date -UFormat %s得到它,但是我可以使用相同的语法吗?当我使用-UFormat %s时,我得到 * 1260199855,65625 *,如何删除小数点?
date -UFormat %s
-UFormat %s
ifmq2ha21#
[int](Get-Date -UFormat %s -Millisecond 0)
zz2j4svz2#
我是这么做的:
$DateTime = (Get-Date).ToUniversalTime() $UnixTimeStamp = [System.Math]::Truncate((Get-Date -Date $DateTime -UFormat %s))
vxbzzdmp3#
只需将结果转换为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将使用固定区域性,这会导致小数点分隔符不是句点的任何区域性出现问题。
rdlzhqv94#
我做了这个,围捕
[System.Math]::Round((date -UFormat %s),0)
olmpazwi5#
我的解决方案:
(Get-Date -UFormat %s) -Replace("[,\.]\d*", "")
vshtjzan6#
我只需要把小数点截短:
(date -UFormat %s).split('.')[0]
eagi6jfj7#
答案应该是UTC。这应该有利于嵌入Discord。请参阅https://www.unixtimestamp.com“-uformat %s”在powershell 5.1中不转换为UTC(但powershell 7可以)。只有一个其他答案考虑了这一点,而不是可接受的答案。
$unixtime = get-date '12/28/22 10pm' | % ToUniversalTime | get-date -uformat %s "<t:$unixtime>" <t:1672282800>
UTC unix时间的替代时间:
[datetimeoffset]'12/28/22 10pm' | % ToUnixTimeSeconds 1672282800
7条答案
按热度按时间ifmq2ha21#
zz2j4svz2#
我是这么做的:
vxbzzdmp3#
只需将结果转换为int,如下所示:
使用Parse方法意味着“可识别区域性”地分析字符串,以便为当前区域性识别适当的小数点分隔符。如果只是直接强制转换,PowerShell将使用固定区域性,这会导致小数点分隔符不是句点的任何区域性出现问题。
rdlzhqv94#
我做了这个,围捕
olmpazwi5#
我的解决方案:
vshtjzan6#
我只需要把小数点截短:
eagi6jfj7#
答案应该是UTC。这应该有利于嵌入Discord。请参阅https://www.unixtimestamp.com“-uformat %s”在powershell 5.1中不转换为UTC(但powershell 7可以)。只有一个其他答案考虑了这一点,而不是可接受的答案。
UTC unix时间的替代时间: