本文主要是介绍Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 格林威治时间即UTC/GMT时间,1970年01月01日00时00分00秒(即UTC+8的北京时间1970年01月01日08时00分00秒)
计算代码如下:

1 /**2 * 获取指定时间到格林威治时间的秒数3 * UTC:格林威治时间1970年01月01日00时00分00秒(UTC+8北京时间1970年01月01日08时00分00秒)4 * @param time5 * @return6 */7 public static long diffSeconds(String time){8 Calendar calendar = Calendar.getInstance();9
10 calendar.clear();
11 Date datetime = DatetimeUtil.toDateByDate14(time);
12 calendar.setTime(datetime);
13
14 TimeZone timeZone = TimeZone.getTimeZone("GMT+08:00");
15 calendar.setTimeZone(timeZone);
16 return calendar.getTimeInMillis()/1000;
17 }
18
19 public static void main(String[] args) throws Exception {
20
21 String datetime = DatetimeUtil.getDatetime();
22 System.out.println("=================方法一:calendar============================");
23 System.out.println(diffSeconds(datetime));
24 System.out.println("=================方法二:计算时间差============================");
25 System.out.println(DatetimeUtil.diffSeconds("19700101080000", datetime, DatetimeUtil.PATTERN_YYYYMMDDHHMMSS));
26 System.out.println("=================方法三:使用system============================");
27 System.out.println(System.currentTimeMillis()/1000);
28 }

2. 用Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间

1 /**2 * 取北京时间3 * @return4 */5 public static String getBeijingTime(){6 return getFormatedDateString(8);7 }8 9 /**
10 * 取班加罗尔时间
11 * @return
12 */
13 public static String getBangaloreTime(){
14 return getFormatedDateString(5.5f);
15 }
16
17 /**
18 * 取纽约时间
19 * @return
20 */
21 public static String getNewyorkTime(){
22 return getFormatedDateString(-5);
23 }
24
25 /**
26 * 此函数非原创,从网上搜索而来,timeZoneOffset原为int类型,为班加罗尔调整成float类型
27 * timeZoneOffset表示时区,如中国一般使用东八区,因此timeZoneOffset就是8
28 * @param timeZoneOffset
29 * @return
30 */
31 public static String getFormatedDateString(float timeZoneOffset){
32 if (timeZoneOffset > 13 || timeZoneOffset < -12) {
33 timeZoneOffset = 0;
34 }
35
36 int newTime=(int)(timeZoneOffset * 60 * 60 * 1000);
37 TimeZone timeZone;
38 String[] ids = TimeZone.getAvailableIDs(newTime);
39 if (ids.length == 0) {
40 timeZone = TimeZone.getDefault();
41 } else {
42 timeZone = new SimpleTimeZone(newTime, ids[0]);
43 }
44
45 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
46 sdf.setTimeZone(timeZone);
47 return sdf.format(new Date());
48 }

这篇关于Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!