本文实例讲述了java获取utc时间的方法。分享给大家供大家参考,具体如下:
取得本地时间:
java.util.calendar cal = java.util.calendar.getinstance();
取得指定时区的时间:
java.util.timezone zone = java.util.timezone.gettimezone(“gmt-8:00″);
java.util.calendar cal = java.util.calendar.getinstance(zone);
java.util.calendar cal = java.util.calendar.getinstance(java.util.locale.china);
您可以取得gmt 0的本地时间,但是又如何取得标准(相对于java而言)的时间呢?
1. 取得本地时间:
java.util.calendar cal = java.util.calendar.getinstance();
2. 取得时间偏移量:
int zoneoffset = cal.get(java.util.calendar.zone_offset);
3. 取得夏令时差:
int dstoffset = cal.get(java.util.calendar.dst_offset);
4.从本地时间里扣除这些差量,即可以取得utc时间:
cal.add(java.util.calendar.millisecond, -(zoneoffset + dstoffset));
完整示例:
import java.text.dateformat;
import java.text.parseexception;
import java.text.simpledateformat;
import java.util.calendar;
import java.util.timezone;
public final class getutctimeutil {
private static dateformat format = new simpledateformat("yyyy-mm-dd hh:mm") ;
/**
* 得到utc时间,类型为字符串,格式为"yyyy-mm-dd hh:mm"
* 如果获取失败,返回null
* @return
*/
public static string getutctimestr() {
stringbuffer utctimebuffer = new stringbuffer();
// 1、取得本地时间:
calendar cal = calendar.getinstance() ;
// 2、取得时间偏移量:
int zoneoffset = cal.get(java.util.calendar.zone_offset);
// 3、取得夏令时差:
int dstoffset = cal.get(java.util.calendar.dst_offset);
// 4、从本地时间里扣除这些差量,即可以取得utc时间:
cal.add(java.util.calendar.millisecond, -(zoneoffset + dstoffset));
int year = cal.get(calendar.year);
int month = cal.get(calendar.month)+1;
int day = cal.get(calendar.day_of_month);
int hour = cal.get(calendar.hour_of_day);
int minute = cal.get(calendar.minute);
utctimebuffer.append(year).append("-").append(month).append("-").append(day) ;
utctimebuffer.append(" ").append(hour).append(":").append(minute) ;
try{
format.parse(utctimebuffer.tostring()) ;
return utctimebuffer.tostring() ;
}catch(parseexception e)
{
e.printstacktrace() ;
}
return null ;
}
/**
* 将utc时间转换为东八区时间
* @param utctime
* @return
*/
public static string getlocaltimefromutc(string utctime){
java.util.date utcdate = null ;
string localtimestr = null ;
try {
utcdate = format.parse(utctime);
format.settimezone(timezone.gettimezone("gmt-8")) ;
localtimestr = format.format(utcdate) ;
} catch (parseexception e) {
e.printstacktrace();
}
return localtimestr ;
}
public static void main(string[] args) {
string utctimestr = getutctimestr() ;
system.out.println(utctimestr);
system.out.println(getlocaltimefromutc(utctimestr));
}
}
运行结果如下:
ps:这里再为大家推荐几款时间及日期相关工具供大家参考使用:
在线日期/天数计算器:
在线日期计算器/相差天数计算器:
在线日期天数差计算器:
unix时间戳(timestamp)转换工具:
在线世界各地时间查询:
希望本文所述对大家java程序设计有所帮助。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!