1.问题描述
我需要DateTime当前时间的国际时间utc
2.我的实现思路
- 用Java 自带的时间类Date去转成国际时间
- 然后将Date转成DateTime
3.具体代码实现
1.将Java自带的Date类 将当前时间变成国际时间的方法
// 将Java自带的Date类 将当前时间变成国际时间的方法
public static Date 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 = new Date(calendar.getTimeInMillis());
return utcDate;
}
2.将date变成DateTime类
public static DateTime date2DateTime(){
Date utc = localToUTC( new Date().toString());
org.joda.time.DateTime dateTime=new org.joda.time.DateTime(utc);
}