packagecom.xinyue.interview.utils;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.TimeZone;public classDateUtil {/***
*
Description: 本地时间转化为UTC时间
*@paramlocalTime
*@return*@authorwgs
* @date 2018年10月19日 下午2:23:43
**/
public staticDate localToUTC(String localTime) {
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date localDate= null;try{
localDate=sdf.parse(localTime);
}catch(ParseException e) {
e.printStackTrace();
}long localTimeInMillis=localDate.getTime();/**long时间转换成Calendar*/Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(localTimeInMillis);/**取得时间偏移量*/
int zoneOffset =calendar.get(java.util.Calendar.ZONE_OFFSET);/**取得夏令时差*/
int dstOffset =calendar.get(java.util.Calendar.DST_OFFSET);/**从本地时间里扣除这些差量,即可以取得UTC时间*/calendar.add(java.util.Calendar.MILLISECOND,-(zoneOffset +dstOffset));/**取得的时间就是UTC标准时间*/Date utcDate=newDate(calendar.getTimeInMillis());returnutcDate;
}/***
*
Description:UTC时间转化为本地时间
*@paramutcTime
*@return*@authorwgs
* @date 2018年10月19日 下午2:23:24
**/
public staticDate utcToLocal(String utcTime){
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date utcDate= null;try{
utcDate=sdf.parse(utcTime);
}catch(ParseException e) {
e.printStackTrace();
}
sdf.setTimeZone(TimeZone.getDefault());
Date locatlDate= null;
String localTime=sdf.format(utcDate.getTime());try{
locatlDate=sdf.parse(localTime);
}catch(ParseException e) {
e.printStackTrace();
}returnlocatlDate;
}public static voidmain(String[] args) {
String time= "2018-10-19 04:23:34";
System.out.println(DateUtil.utcToLocal(time));
}
}