提问人:Howins 提问时间:9/22/2023 更新时间:9/22/2023 访问量:68
如何在 nushell 中获取当前时间戳减去 30 分钟?
How can I get the current timestamp minus 30 minutes in nushell?
答:
2赞
pmf
9/22/2023
#1
您可以从提供的当前日期中减去持续时间(例如)(您也可以添加具有相同效果的负持续时间):30min
date now
(date now) - 30min
# or
(date now) + -30min
因此,如果您的输入是表示分钟数的整数,只需将其附加为字符串,然后在减法/加法之前使用它进行转换,如上所述:"min"
into duration
30 | (date now) - ($"($in)min" | into duration)
# or
-30 | (date now) + ($"($in)min" | into duration)
为了完整起见,虽然不建议这样做,但你也可以通过将当前日期格式化为以秒为单位的 UNIX 时间戳来走完整的算术路线,然后减去/添加也转换为秒的分钟数(即乘以 60),并将其进一步转换为纳秒(即再次乘以 10 亿),因为这是接受的数字输入。将它与 (或) 选项一起使用以重新包含您的本地时区(该时区因 UNIX 时间戳而丢失)。format date "%s"
into datetime
--timezone LOCAL
-z l
30 | (((date now | format date "%s") | into int) - $in * 60) * 1_000_000_000 | into datetime -z l
# or
-30 | (((date now | format date "%s") | into int) + $in * 60) * 1_000_000_000 | into datetime -z l
为了获得超精确度,您甚至可以使用格式字符串直接以纳秒为单位提取 UNIX 时间戳,然后减去/添加同样转换为纳秒的分钟数:%s%f
30 | ((date now | format date "%s%f") | into int) - $in * 60_000_000_000 | into datetime -z l
# or
-30 | ((date now | format date "%s%f") | into int) + $in * 60_000_000_000 | into datetime -z l
评论
1赞
Marijn
9/22/2023
或者:(date now) - (30min)
0赞
Howins
9/22/2023
非常感谢,没想到这么简单!
下一个:如何管理 PATH
评论