记一次Android中获取时间戳在Java转字符串不正确的问题


Hi, I’m Shendi


记一次Android中获取时间戳在Java转字符串不正确的问题




问题

在 Java 中将 Android 的时间戳转字符串,发现转换的结果不正确。示例代码如下

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.DAY_OF_MONTH, 12);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTimeInMillis());

上面代码获取的时间戳,按道理转字符串应该是 2023-12-12 00:00:00

但我在Android中获取的时间戳为 1702339200000,在Java中转换后是 2023-12-12 08:00:00

而在Java中获取的是 1702310400000。



问题解决

排查发现到问题后,就寻找解决办法,询问GPT等没有答案(太傻了),浪费我太多时间,后面想到时区的问题,于是我将Java中的时区与Android中的时区打印出来

System.out.println(TimeZone.getDefault());

Java 输出 sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]


Android 输出 java.util.SimpleTimeZone[id=GMT,offset=0,dstSavings=3600000,useDaylight=false,startYear=0,startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,startTime=0,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0]


可以看到时区的确不一样,最后,在Android中设置时区,问题解决

// 一次性设置
calendar.setTimeZone(TimeZone.getTimeZone("GMT+08:00"));
// 设置默认时区
TimeZone.setDefault(TimeZone.getTimeZone("GMT+08:00"));



END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何做到人均告警减少 90%?B 站新一代告警平台的设计与实践

一分钟精华速览 B 站的业务规模和用户群体不断扩大,对于服务的稳定性和可用性的要求也日益增高。这就需要 B 站的监控告警系统能够及时、准确地发现和定位问题,以便尽快解决,维护好用户的使用体验。 本文是对 B 站在告警监控系统上的一次重…

小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?

在当前云原生时代,随着微服务架构的广泛应用,云原生可观测性概念被广泛讨论。可观测技术建设,将有助于跟踪、了解和诊断生产环境问题,辅助开发和运维人员快速发现、定位和解决问题,支撑风险追溯、经验沉淀、故障预警&a…

MATLAB图解傅里叶变换(初学者也可以理解)

1、概述 相信很多人对于傅里叶变换可能觉得比较复杂和有点难懂,其实不难,它只是一种积分变换。 傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。也就是说&qu…

『 Linux 』进程地址空间概念

文章目录 🫙 前言🫙 进程地址空间是什么🫙 写时拷贝🫙 可执行程序中的虚拟地址🫙 物理地址分布方式 🫙 前言 在c/C中存在一种内存的概念; 一般来说一个内存的空间分布包括栈区,堆区,代码段等等; 且内存是…

Notes2024节气和日历来了

大家好,才是真的好。 还有三周就是2024年了。 2024的节假日安排其实早就发布,有些人已经把这些节假日安排都写在自己的日历上了;同时我们这里也设置了一份,包括节假日和农历二十四节气以及中西传统的节日日期等。 如果你需要的…

均匀分布的随机变量

如果连续型随机变量的概率密度满足如下公式: 那么就称在区间(a,b)上服从均匀分布,记为。

国际语音呼叫中心有什么功能特点?

国际语音呼叫中心的功能特点 智能客服 国际语音呼叫中心通过智能客服系统,可以为客户提供快捷、高效的服务。可以根据客户需求,自动回答部分常见问题,提高客户服务效率。 个性化定制 国际语音呼叫中心平台可以根据客户需求,为…

el-tree搜索的使用

2023.12.11今天我学习了如何对el-tree进行搜索的功能,效果如下: 代码如下: 重点部分:给el-tree设置ref,通过监听roleName的变化过滤数据。 default-expand-all可以设置默认展开全部子节点。 check可以拿到当前节点的…

线程安全集合类

文章目录 1. ConcurrentHashMap2. LinkedBlockingQueue 阻塞队列3. ConcurrentLinkedQueue4. CopyOnWriteArrayList JDK1.7 hashmap采用数组加链表头插的方式,在扩容时会出现循环死链问题,A->B->C扩容后C->B->A AB BA出现循环死链。 1. Conc…

msvcp140.dll丢失怎么办?这些方法值得一试

小编将探讨计算机系统中MSVCP140.DLL文件的重要性及其潜在的问题和相应的修复措施。此文件对实现软件应用的特定功能起着关键性的作用,当其丢失时,某些运行环境下的应用程序和游戏便无法正常运作。因此,了解并解决相关问题非常必要。 一、msv…

SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案

Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError 文章目录 Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError1、问题出现1.1、Jar包运行:没有主清单属性解决方…

如何在Python控制台中运行程序

一、打开cmd,并进入程序所在的目录 这里可以先进入要运行的程序所在的目录,然后在地址栏输入cmd并回车,就可以打开cmd并定位到当前目录。 二、在控制台中运行程序 python hello.py运行结果就会打印出来了

【运维】Kafka高可用: KRaft(不依赖zookeeper)集群搭建

文章目录 一. kafka kraft 集群介绍1. KRaft架构2. Controller 服务器3. Process Roles4. Quorum Voters5. kraft的工作原理 ing 二. 集群安装1. 安装1.1. 配置1.2. 格式化 2. 启动测试2.1. 启功节点服务2.2. 测试 本文主要介绍了 kafka raft集群架构: 与旧架构的不…

国外资源国内镜像访问(亲测)

关于huggingface模型下载: 手动下载(测试时间20231125):suno/bark Hugging Face 清华镜像(已失效):https://mirrors.tuna.tsinghua.edu.cn/hugging-face-models/hfl/ 使用huggingface镜像的方式…

【Jeecg Boot 3 - 第二天】第2节 前后端docker部署云服务器

更新完成,点击下面章节进入 一、后端部署 1.1、后端 docker-compose 部署 JEECGBOOT 1.2、jar 包和 lib 依赖分离,部署包缩小100倍 二、前端部署 2.1、nginx 部署 JEECGBOOT VUE3 2.2、开启Nginx压缩,解决前端访问慢问题

数据结构-线性表的详解

1、线性表 一个线性表是n个数据元素的有限序列 特点:在数据元素的非空有限集中 (1)存在唯一的一个被称为第一个的数据元素 (2)存在唯一的一个被称为最后一个的数据元素 (3)除了第一个以外&…

Unity | Shader基础知识(第六集:语法<如何加入外部颜色资源>)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、语法结构 1 复习 2 理论知识 3 Shader里声明的写法 4 Properties和SubShader毕竟不是一家人 三、 片元着色器中使用资源 四、代码实现 五、全部代码 六、下集介绍 相关阅读 Unity - Manual: Writing Surface Shaders…

K8S学习指南(16)-k8s核心对象Job

文章目录 前言Job的基本概念什么是Job?Job的主要作用 Job的详细示例示例:运行批量处理任务的JobJob的定义创建Job查看Job状态查看任务执行日志任务的重试 Job的最佳实践 结论 前言 Kubernetes(K8s)作为领先的容器编排平台&#x…

【Oracle】常用数据库sql记录

文章目录 1、获取指定日期所在年份2、获取指定日期所在月份3、获取指定日期去年同期日期4、获取指定日期所在年份的总天数5、获取年初到指定日期的天数6、除法运算7、递归查询8、REPLACE函数9、DECODE 函数10、聚合函数11、窗口函数11.1 ROW_NUMBER函数11.2 RANK函数11.3 LEAD …

jpa 修改信息拦截

实现目标springbootJPA 哪个人,修改了哪个表的哪个字段,从什么值修改成什么值 import jakarta.persistence.*; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; im…