码迷,mamicode.com
首页 > 其他好文 > 详细

时间处理得到UTC时间

时间:2016-05-22 00:36:38      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

在工作过程遇到了时间处理的问题,因为需要统一将时间处理按照utc时间进行处理,因此,不能简单的通过系统运行直接得到时间的毫秒数,这样会在不同时区得到的值是不同的。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TimeUtil {
    
    private final static String MINTUE = "yyyyMMddHHmm";
    
    public static String getUTCTime(String dateStr) throws ParseException
    {
        SimpleDateFormat sdf = new SimpleDateFormat(MINTUE);
        Date date = sdf.parse(dateStr);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        //方法1:直接计算相差的时间得到UTC时间
        long unixTimeGMT = calendar.getTimeInMillis() - TimeZone.getDefault().getRawOffset();
        System.out.println(unixTimeGMT);
        //方法2:通过获得时区偏移量和夏时令偏移量,再计算UTC时间
        int timeZone = calendar.get(Calendar.ZONE_OFFSET);
        System.out.println(timeZone);
        int dst = calendar.get(Calendar.DST_OFFSET);
        System.out.println(dst);
        calendar.add(Calendar.MILLISECOND, -(timeZone + dst));
        System.out.println(calendar.getTimeInMillis());
        return "";
    }
}

 

时间处理得到UTC时间

标签:

原文地址:http://www.cnblogs.com/woniu4/p/5515869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!