本文實例講述了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程序設計有所幫助。