【问题标题】:How do I get a timestamp not from the system, but from data from the Internet in Java/Kotlin? [duplicate]如何不是从系统中获取时间戳,而是从 Java/Kotlin 中的 Internet 数据中获取时间戳? [复制]
【发布时间】:2021-06-24 16:02:35
【问题描述】:

我有变量curTime,我想获取1616572689这个表格的当前时间,有2种熟悉的方法

val curTime: Long = Date().getTime()

val curTime = System.currentTimeMillis()

但是问题来了,如果我把手机上的时间改成2007,那么变量的值就会不正确!它将显示 2007 年。如何确保数据不是来自系统,而是来自 Internet?一些网站,例如https://timestamp.online/

请帮忙,找不到关于这个问题的任何信息。

【问题讨论】:

标签: java android kotlin


【解决方案1】:

您可以找到一个带有公共 API 的在线服务器,用于检索当前时间,例如World Time API。这只是一个示例,还有其他服务器,您应该自己研究以找到最适合您的需求和许可限制的服务器。

然后您执行 HTTP GET 请求并解析返回的 JSON 以获取您寻找的值。

例如如果您想要美国东部时区的当前时间,您可以使用来自http://worldtimeapi.org/api/timezone/America/New_York 的 HTTP GET,它会响应如下内容:

{
  "abbreviation": "EDT",
  "client_ip": "73.106.239.191",
  "datetime": "2021-03-28T06:37:10.320418-04:00",
  "day_of_week": 0,
  "day_of_year": 87,
  "dst": true,
  "dst_from": "2021-03-14T07:00:00+00:00",
  "dst_offset": 3600,
  "dst_until": "2021-11-07T06:00:00+00:00",
  "raw_offset": -18000,
  "timezone": "America/New_York",
  "unixtime": 1616927830,
  "utc_datetime": "2021-03-28T10:37:10.320418+00:00",
  "utc_offset": "-04:00",
  "week_number": 12
}

您要查找的值是 unixtime 字段。

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 2015-11-29
    • 1970-01-01
    • 2021-07-20
    • 2020-11-20
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多