java SimpleDateFormat设置时区格式化时间

java SimpleDateFormat设置时区格式化时间前情提要在 Android 开发中经常遇到有的接口需要上传当前时间 如果后台要求直接传一个 long 类型的时间戳还好 因为这个时间戳是跟时区无关的 如果后台接口要求传的是格式化的时间 若本地设备设置的时区与后台要就的时区不一致 就会导致上传的时间不准确 有问题的写法这种写法 SimpleDateFo 默认用的是本地设备设置的时区 若本地时区与后代约定的不一致就会导致问题 Simple

前情提要

在Android开发中经常遇到有的接口需要上传当前时间,如果后台要求直接传一个long类型的时间戳还好,因为这个时间戳是跟时区无关的,如果后台接口要求传的是格式化的时间,若本地设备设置的时区与后台要就的时区不一致,就会导致上传的时间不准确。

有问题的写法

这种写法SimpleDateFormat默认用的是本地设备设置的时区,若本地时区与后台约定的不一致就会导致问题

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String timestamp = dateFormat.format(new Date());

设置时区

以格式化东八区时间为例,设置时区有以下三种写法,格式化后的时间是一样的

public class Test5 { public static void main(String[] args) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dateFormat.setTimeZone(TimeZone.getTimeZone("Etc/GMT-8")); System.out.println("方法一:" + dateFormat.format(new Date())); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); System.out.println("方法二:" + dateFormat.format(new Date())); dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); System.out.println("方法三:" + dateFormat.format(new Date())); } }

输出结果

方法一:2019-05-18 17:02:17 方法二:2019-05-18 17:02:17 方法三:2019-05-18 17:02:17
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207589.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:32
下一篇 2026年3月19日 下午1:32


相关推荐

  • 安卓—项目中插入百度地图sdk

    安卓—项目中插入百度地图sdk

    2022年1月19日
    58
  • idea免费激活码-激活码分享

    (idea免费激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9071407CR5-eyJsaWNlbnNlSWQiOi…

    2022年3月22日
    60
  • UltraEdit 25注册机及免费激活成功教程注册教程(附带工具)

    UltraEdit 25注册机及免费激活成功教程注册教程(附带工具)UltraEdit25 注册机是一款专门针对 UltraEdit25 00 版本出品的激活激活成功教程工具 旨在帮助用户可以对 ultraedit25 软件进行激活成功教程许可 解除官方所有限制功能 让其原本需要花钱购买的如今可以直接免费使用 UltraEdit25 注册机能够生成标准 UltraEdit25 注册码 经测试真实有效 如果你还在因找不到激活成功教程版的软件而苦恼的话 那么这款注册机绝对会是你最佳辅助 有需求的用

    2026年3月18日
    1
  • Tomcat启动一直卡在webapps/ROOT的解决方案

    Tomcat启动一直卡在webapps/ROOT的解决方案

    2021年6月1日
    126
  • es6模板字符串里用html标签,为ES6模板字符串计算标签函数[通俗易懂]

    es6模板字符串里用html标签,为ES6模板字符串计算标签函数[通俗易懂]Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。这篇博客描述了你可以通过函数为ES6模板字符串做些什么从而获取返回值。对于一篇针对模板字符串的介绍来说,标记的模板字符串和函数需要在《探索ES6》中查询模板字符串章节1.通过模板字符串获取返回值在JavaScript中获取一个值最普遍的方法就是在括号中加上参数。在ES6中,你可以通过模板字符串更多地获取返回…

    2022年8月21日
    12
  • ext表示什么_rent和lease

    ext表示什么_rent和leaseExtjs的组件有两个看起来类似的配置项,applyTo和renderTo,这两个配置项都是用来指定将该extjs组件加载到什么位置。那他们到底有什么区别呢,网上搜了下,有两篇博文也是关于这个的。ExtJS中的renderTo和applyTo的差别[url]http://hi.baidu.com/agzfsshohpcdegr/item/50370f1912dc05e3…

    2022年7月28日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号