时间戳转 Date 字符串出现误差「建议收藏」

时间戳转 Date 字符串出现误差「建议收藏」  1.问题描述:    前台一个日期选择组件,提交的数据格式为“1991-05-10”,后台使用SimpleDateFormat进行转换,获取到时间戳,存入数据库,数据库字段为bigint类型,保存后,日期回显,显示为“1991-05-09”,出现一天的误差,但不是所有日期都存在误差。  前台获取到时间戳,转换后调用toLocaleDateString回显数据。 …

大家好,又见面了,我是你们的朋友全栈君。

  1. 问题描述:
  
  前台一个日期选择组件,提交的数据格式为“1991-05-10”,后台使用 SimpleDateFormat 进行转换,获取到时间戳,存入数据库,数据库字段为 bigint 类型,保存后,日期回显,显示为 “1991-05-09”,出现一天的误差,但不是所有日期都存在误差。
  前台获取到时间戳,转换后调用 toLocaleDateString 回显数据。
  
  2. 解决方法:
  
  后台,在使用 SimpleDateFormat 时,设置时区,如下:
  

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

  3. 相关代码如下:
  

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
            Date birthdayDate = null;
            try {
                birthdayDate = simpleDateFormat.parse(birthday);
                long time = birthdayDate.getTime();
                long l = time / 1000;
                member.setBirthday(l);
            } catch (ParseException e) {
                LOGGER.error("出生日期转换异常", e);
            }
<script> // 变换日期 Date.prototype.toLocaleDateString = function () { 
     return this.getFullYear() + "-" + (this.getMonth() + 1) + "-" + this.getDate(); }; var date_before = $("#birthday_source").val(); var unixTimestamp = new Date(date_before * 1000); var new_date = unixTimestamp.toLocaleDateString(); $("#birthday_input").val(new_date); </script>
 <input id="birthday_input" name="birthday" value="" onchange="save()" style="text-align: right"/>

个人微信公众号,追寻自由,分享生活!
这里写图片描述

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149399.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Pytest(6)重复运行用例pytest-repeat「建议收藏」

    Pytest(6)重复运行用例pytest-repeat「建议收藏」前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

  • Google Maps_Google桌面搜索

    Google Maps_Google桌面搜索GoogleBuzz从诞生那天起就跟位置服务紧密连接在了一起,我们可以在移动GoogleMaps里看到大家都在哪里发送Buzz(只要他们发送的时候让Google记录自己的位置),这个功能非常有趣,特别是在某些特殊事件发生之时,可以按照位置看到某个区域里的人们都在想什么做什么(而不是按照timeline的传统方式)。今天,Google在桌面地图服务里也开放了Buzz图层(之…

    2022年10月15日
  • MySQL复制

    复制复制是从一个MySQL服务器(master)将数据拷贝到另外一台或多台MySQL服务器(slaves)的过程.复制是异步进行的–slaves服务器不需要持续地保持连接来接收master的数据.

    2021年12月25日
  • 模型融合stacking实战

    模型融合stacking的原理具体不再解释,有的博客已经解释很清楚了,还是附一张经典图吧,直接上完整程序(根据后面的数据集下载地址可以下载数据集,然后直接运行程序):#Loadinourlibrariesimportpandasaspdimportnumpyasnpimportreimportxgboostasxgbimportwarningswa…

  • Python学习(九)Python缩进规则[通俗易懂]

    Python学习(九)Python缩进规则[通俗易懂]其它程序设计语言(如Java、C语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号(:)来区分代码块之间的层次。在Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。注意,Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论是手动敲空格,还…

    2022年10月13日
  • intellj 激活码2021(最新序列号破解)

    intellj 激活码2021(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

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