繁体   English   中英

如何将CET时间转换为设备上的本地时间?

[英]How to convert CET time to local time on device?

我有三个不同的时间:

服务器上的时间-“ 2014年2月19日星期三,欧洲中部时间

服务器上开始会议的时间-“ 12:00h

设备上的时间-“ 13:49

我需要获取开始在设备上开会的时间... this->“ 14:00h ”或开会的时间->“ 11m

我正在尝试通过使用:

                    long ts = System.currentTimeMillis();
                    Date localTime = new Date(ts);
                    String gmt_time="12:00h"; 
                    SimpleDateFormat format = new SimpleDateFormat("HH:mm'h'");
                    format.setTimeZone(TimeZone.getTimeZone("GMT"));
                    Date d_date = null;

                        d_date = format.parse(gmt_time);

                    format.setTimeZone(TimeZone.getTimeZone("UTC"));



                     Date fromGmt = new Date(d_date.getTime() + TimeZone.getDefault().getOffset(localTime.getTime()));
                     String new_date=format.format(fromGmt);

但是new_date的结果是“ 15:00h” (我需要“ 14:00h ”)

您对Wed, 19 Feb 2014 CET = GMT假设似乎不正确-请参阅此处

CET比格林尼治标准时间早一个小时

11:44 CET表示格林尼治标准时间10:44

因此,当您从GMT时间和本地时间计算出偏差时,会为其增加一个小时。

更改format.setTimeZone(TimeZone.getTimeZone("GMT")); format.setTimeZone(TimeZone.getTimeZone("CET")); 它应该可以按预期工作。

快速找到解决方案

              String cet_time="12.11.14"+" "+"12:00h"; 
            SimpleDateFormat format = new SimpleDateFormat("dd.MM.yy' 'HH:mm'h'");
                    format.setTimeZone(TimeZone.getTimeZone("CET"));

                    Date d_date = format.parse(cet_time);

( new SimpleDateFormat("dd.MM.yy")).format(fromGmt);//new date String
( new SimpleDateFormat("HH:mm'h'")).format(fromGmt);//new time String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM