【问题标题】:How to get time from internet and convert it into local time - android?如何从互联网上获取时间并将其转换为当地时间 - android?
【发布时间】:2017-07-28 13:00:04
【问题描述】:

从服务器检索太平洋时间有很多线程,但我想将其转换为本地时间,如 IST。 我住在印度。 最好我想使用 firebase 来检索时间。如果您能给我提供一个从 Firebase 中检索时间并将其转换为本地时间和日期的代码,我将非常感激。

【问题讨论】:

    标签: android datetime timestamp internet-connection android-internet


    【解决方案1】:
    1. 您必须从服务器获取时间,它们有很多服务,但我更喜欢使用它,它可以在UTC 时区为您提供所需的所有数据:https://script.google.com/macros/s/AKfycbyd5AcbAnWi2Yn0xhFRbyzS4qMq1VucMVgVvhul5XqS9HkAyJY/exec(来自http://davidayala.eu/current-time
    2. 然后您必须解析服务响应并获取所需的值。
    3. 最后实例化日历并使用您获得的值(日、周、月)设置它,并以您想要的格式获取您想要的时区中的时间^^

    P.S:您也可以从上述 API 中获取任何时区的时间(它也支持印度的许多本地时间),无需任何转换。

    【讨论】:

    • 欢迎您,每个步骤可能需要一点时间和精力来实施。让我知道这是否适合你^^
    【解决方案2】:

    将您的时区设置为日历,然后只需获取 DAY、Minute、Hour、DAY、WEEK 等。

    TimeZone tz = TimeZone.getTimeZone("GMT+05:30");
    Calendar c = Calendar.getInstance(tz);
    String time = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+":"+
                  String.format("%02d" , c.get(Calendar.MINUTE))+":"+
                  String.format("%02d" , c.get(Calendar.SECOND))+":"+
                  String.format("%03d" , c.get(Calendar.MILLISECOND));
    

    参考:Get current time in a given timezone : android

    【讨论】:

      【解决方案3】:
      1. 从互联网服务器获取时间(时间毫秒)。(您可以附加服务器的响应)。
      2. 获取互联网服务器的区域,让它为 +2:45(也附加它以响应服务器的响应)并将其转换为毫秒。

      3. 从您的设备获取时区 (+6:00) 并将其转换为毫秒。

      4.now 到服务器的时间毫秒数添加以下(时间 来自服务器的毫秒数 + 你的时区毫秒数 - 服务器时区毫秒数

      1. 现在将结果转换为您想要的时间日期格式

      【讨论】:

      • @AbhinavMarwaha 至少做谷歌,也感谢提供详细信息的人。
      • 对不起,我会用谷歌搜索它,我仍在向所有伟大的开发人员学习。谢谢您的帮助 。我仍然想知道为什么我的问题被否决至少为我提供了理由,以便我可以改进。再次感谢您。@PareshMayani
      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 2022-01-06
      • 2013-03-12
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多