Java获取UTC时间的方法详解
程序员文章站
2024-03-01 20:59:10
本文实例讲述了java获取utc时间的方法。分享给大家供大家参考,具体如下:
取得本地时间:
java.util.calendar cal = java.uti...
本文实例讲述了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"<br /> * 如果获取失败,返回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程序设计有所帮助。