Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数

Posted OpenCountry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数相关的知识,希望对你有一定的参考价值。

  1. 格林威治时间即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 time
 5      * @return
 6      */
 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      * @return
 4      */
 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秒的秒数的主要内容,如果未能解决你的问题,请参考以下文章

时间编程

JAVA8新特性随笔

Java日期类型的绍介和操作(二十七)

golang 常用的日期方法和时区的坑

如何在 Oracle 中获取当前的 GMT

php获取时间问题,用默认配置读到本地时间。。。。。