- 格林威治时间即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 }
时间: 2024-11-08 19:01:31