【问题标题】:How to convert RFC 3339 date-time to IST?如何将 RFC 3339 日期时间转换为 IST?
【发布时间】:2019-06-17 02:24:22
【问题描述】:

我正在使用 Google Drive Rest API 来列出我的 Google Drive 文件。我正在获取驱动器中文件的元数据下方。在那里,我得到了 RFC 3339 格式的“创建时间”。 您能帮我将 Google Drive Rest API 返回的时间转换为 IST 吗?有没有办法在 Linux 平台上做到这一点?

{
 "files": [
  {
   "id": "1y_GB6OCBENf_gDMAzAHdN",
   "name": "testfile.jpg",
   "webViewLink": "https://drive.google.com/file/d/1y_GB6OCBENf_gDMAzAHdN/view?usp=drivesdk",
   "createdTime": "2019-06-17T02:08:50.959Z"
   }
  ]
}

注意:我使用 curl 工具从我的 Linux 服务器访问 Google Drive Rest API。

【问题讨论】:

  • 请编辑您的问题并向我们展示您的尝试。 API 只会在它拥有的时区中返回它,所以一旦你得到它,你就必须自己隐藏它。
  • 是的,没错。我们如何将其转换为 IST?我们可以在 Linux 中为此提供任何工具吗?
  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: c curl google-drive-api google-drive-android-api clib


【解决方案1】:

我了解您想要获取文件的创建日期,将其转换为 IST 并在您的代码中使用它,但如果我错了,请纠正我。 你可以这样做:

#!/bin/bash

your_date="2019-06-17T02:08:50.959Z"

#Remove the Z from the date
formatZ="${your_date//Z}"

#Replace the T with a space
formatT=$(echo $formatZ | tr T " ") 

#Use the command date to convert the date we formatted
newdate=$(TZ=IST date -d "$formatT UTC-5:30")

echo $newdate

【讨论】:

  • 嗨 Jescanellas,这是我所期望的,它在 bash 中运行良好。 C语言有没有办法处理这个时间转换?
  • 遗憾的是我不喜欢 C,但这个例子可能对你有用:stackoverflow.com/questions/13804095/… 和:stackoverflow.com/questions/48771851/…
  • 有没有办法用 Python 而不是 C 来处理这个时间转换?我在这方面搜索了一些链接,但有点棘手。所以,我在这里问了自己。
【解决方案2】:

您可以对parsing the ISO 8601/RFC 3339 timestamp 使用date 命令,然后对converting it to another timezone 再次使用date 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2016-04-14
    相关资源
    最近更新 更多