本文主要是介绍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秒的秒数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!