本文实例讲述了Java获取UTC时间的方法。分享给大家供大家参考,具体如下:
取得本地时间:
1
|
java.util.Calendar cal = java.util.Calendar.getInstance();
|
取得指定时区的时间:
1
2
3
|
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. 取得本地时间:
1
|
java.util.Calendar cal = java.util.Calendar.getInstance();
|
2. 取得时间偏移量:
1
|
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
|
3. 取得夏令时差:
1
|
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
|
4.从本地时间里扣除这些差量,即可以取得UTC时间:
1
|
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
|
完整示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
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程序设计有所帮助。