gpt4 book ai didi

linux - 将 Linux 日期转换为 yyyy-MM-dd'T'HH :mm:ss'Z' format

转载 作者:可可西里 更新时间:2023-11-01 11:51:32 25 4
gpt4 key购买 nike

我需要对日期时间值进行参数化,目的是传递到构建的 URI 以调用 Smartsheet API 以获取过去 24 小时内更改的数据(即工作表)。

我想使用 Linux date 命令,因为我可以执行类似 date -d '1 day ago' %F 的操作来获取前一天的输出。如何使用日期命令将值转换为 yyyy-MM-dd'T'HH:mm:ss'Z' 格式以获得类似 2018-01-01T00:00 的内容:00-07:00

如果值不是这种特定格式,则 Smartsheet API 会提示:

HTTP_01 - Error fetching resource. Status: 400 Reason: 
Bad Request : { "errorCode" : 1018, "message" : "The value '/home/my/path/to/param_file/Sysdate' was not valid for the parameter modifiedSince.", "refId" : "1xqawd3s94f4y" }

谢谢,

最佳答案

ISO 8601中输出日期格式,你可能想使用 -I[FMT]/--iso-8601[=FMT] 选项,如果你的 date支持它(GNU/Linux 版本支持)。 FMT 基本上是一个解决方案,在您的情况下,您需要使用 s 几秒钟:

$ date -Is
2018-03-09T09:28:14+01:00

替代方案(对于 POSIX date ,包括 BSD/OSX date )是明确指定格式并输出 UTC 时区的时间(-u 标志):

$ date -u +"%Y-%m-%dT%H:%M:%SZ"
2018-03-09T08:28:14Z

请注意 -u 的重要性以及我们可以在这种情况下附加的显式 Z。如果没有 -u,我们需要以 +hh:mm 格式输出准确的时区,但是 POSIX date 只提供时区支持名称输出 (%Z)。 GNU date 扩展了格式集 %:z 输出数字时区,但如果已经使用 GNU date,第一种方法是 -是更简单。

关于linux - 将 Linux 日期转换为 yyyy-MM-dd'T'HH :mm:ss'Z' format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49187200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com