首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本地时间到EST时间转换

本地时间到EST时间转换
EN

Stack Overflow用户
提问于 2015-07-07 12:25:11
回答 2查看 2.8K关注 0票数 0

Android本地时间到EST时间转换

代码:

代码语言:javascript
复制
SimpleDateFormat serverDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
serverDateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
Calendar calender= Calendar.getInstance(Locale.getDefault());
String  time=serverDateFormat.format(calender.getTime());

但是我的时间不对。和正确的时间差一个小时。当地时间:7月7日下午17:30 GMT+05:30 2015格式化时间: 2015/ 07 /07 :00正确时间: 2015/07/ 07 :00:00

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-07 15:18:33

您的问题是使用标识符"EST“,它代表”东方标准时间“。顾名思义,它不使用夏令。证明:

代码语言:javascript
复制
TimeZone tz = TimeZone.getTimeZone("EST");
long offset = tz.getOffset(System.currentTimeMillis()) / (1000 * 3600);
System.out.println(tz.getID() + ":" + tz.useDaylightTime() + "/" + offset);
// output: EST:false/-5

改为使用时区id“America/New York”:

代码语言:javascript
复制
tz = TimeZone.getTimeZone("America/New_York");
offset = tz.getOffset(System.currentTimeMillis()) / (1000 * 3600);
System.out.println(tz.getID() + ":" + tz.useDaylightTime() + "/" + offset);
// output: America/New_York:true/-4

然后你将观察到7月份的夏令时,偏移差为(+05:30) - (-04:00) = +09:30,因此预计当地时间上午8点。

票数 2
EN

Stack Overflow用户

发布于 2015-07-07 12:28:15

嘿,请试试这个function for time conversion -

代码语言:javascript
复制
    public static String getTime(String time, SimpleDateFormat sdf) {
    String convertedTime = "";

    try {
        TimeZone timeZone = TimeZone.getDefault();
        Date postdate = sdf.parse(time);
        long postTimeStamp = postdate.getTime() + timeZone.getRawOffset();

        String dateString = sdf.format(new Date(postTimeStamp));

        convertedTime = dateString;


        // convertedTime = getLastTime(context, time);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return convertedTime;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31268500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档