如何将设备 GMT 时间添加到特定时间?

Posted

技术标签:

【中文标题】如何将设备 GMT 时间添加到特定时间?【英文标题】:How to add device GMT time to a specific time? 【发布时间】:2014-06-21 15:05:42 【问题描述】:

我从 API 获取时间,例如“00:00”,我想将设备 GMT 时间添加到从 API 接收的时间。

我正在使用以下代码获取设备的 GMT 时间

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
            Locale.US);
    Date currentLocalTime = calendar.getTime();
    DateFormat date = new SimpleDateFormat("dd:MM:yyyy HH:mm z");
    String localTime = date.format(currentLocalTime);
    Log.v("GMT time:", localTime + "");

是否有任何内置方法可以将 GMT 时间添加到特定时间?

【问题讨论】:

请定义将时间添加到时间。对我来说,语义上是不可能的。通常,您只能为时间添加持续时间。好吧,我只是推测:您的意思是在本地时间应用时区偏移量(UTC-time + timezone-offset = local-time)? 【参考方案1】:

也许你可以试试这样的东西

 public static void main(final String[] args) throws Exception    
        Date date = new Date();   
        DateFormat localDf = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);   
        DateFormat gmtDf = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);   
        DateFormat nyDf = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);   

        gmtDf.setTimeZone(TimeZone.getTimeZone("GMT"));   
        nyDf.setTimeZone(TimeZone.getTimeZone("America/New_York"));   

        System.out.println("local : " + localDf.format(date));   
        System.out.println("GMT   : " + gmtDf.format(date));   
        System.out.println("NY    : " + nyDf.format(date));   
       

【讨论】:

没关系,但问题是如何将GMT时间添加到任何特定时间。 我不确定您添加 GMT 时间是什么意思。你能提供一个用例吗? 我从 API 收到了一些时间,例如“12:40”。我需要获取设备的 GMT 时间,然后将其添加到来自 API 的接收时间。例如,我得到了 GMT 时间 +05:30,我必须将其与接收时间相加,即 12:40。格林威治标准时间可能会因用户的设备和地区而异。【参考方案2】:

你可以这样试试:

TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");
date.setTimeZone(gmtTime);
String localTime = date.format(currentLocalTime);

Date and time conversion to some other Timezone in java

【讨论】:

它不工作。我获得了设备的 GMT 时间,但无法添加特定时间。例如。我得到了 GMT 时间 +05:30,现在我想在“11:10”的特定时间添加它。我怎样才能做到这一点。另一方面,如果设备的 GMT 时间是 -04:00,那么如何将其添加到特定时间?

以上是关于如何将设备 GMT 时间添加到特定时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 +1 添加到当前时区? [关闭]

如何将特定 GMT 用于其他时区可识别的功能

如何使用 MQ 的 esql 将日期的特定时区转换为 GMT 时区?

如何根据设备的位置转换 GMT 时区?

将 GMT 时间转换为特定的字符串格式 [重复]

如何在 Android 设备中使用 GMT 获取时区格式?