软件编程
位置:首页>> 软件编程>> java编程>> Java获取UTC时间的方法详解

Java获取UTC时间的方法详解

作者:番茄与西红柿  发布时间:2022-03-24 13:50:50 

标签:Java,UTC时间

本文实例讲述了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));
 }
}

运行结果如下:

Java获取UTC时间的方法详解

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器:
http://tools.jb51.net/jisuanqi/datecalc

在线日期天数差计算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq

Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime

在线世界各地时间查询:

http://tools.jb51.net/zhuanhuanqi/worldtime

希望本文所述对大家java程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com