[英]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.