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 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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2015-06-24 oracle序列sequence操作汇总(命令)--待续
2015-06-24 Linux bash脚本及常用命令--不断更新中