时间戳转 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"/>

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SecureCRT 中文(附上1.解决SecureCRT乱码问题2.解决Hostname lookup failed: host not found问题)[通俗易懂]

    secureCRT破解版是一款支持SSH1和SSH2的终端仿真程序,这个程序能够在windows系统中登陆UNIX或Linux的服务器主机并且还能进行管理设置,是一款非常强大的ssh传输软件,是用于连接运行包括Windows、UNIX和VMS的理想工具。并且它还有打印功能、可变屏幕尺寸、对不同主机保持不同的特性、颜色设置、自动注册等众多优秀的功能特色。同时还支持Telnet/SSH、TAPI、R…

    2022年4月17日
    222
  • maven配置多仓库镜像「建议收藏」

    maven配置多仓库镜像「建议收藏」问题场景:1、国内访问maven默认远程中央镜像特别慢2、用阿里的镜像替代远程中央镜像3、大部分jar包都可以在阿里镜像中找到,部分jar包在阿里镜像中没有,需要单独配置镜像我想达到的目标:在maven中配置一主一副两个镜像,大部分jar直接通过主镜像可以找到,部分特殊jar在主镜像中找不到时,自动去副镜像中寻找。我所处的阶段:修改了maven的全局配置文件settin…

    2022年5月28日
    147
  • RangeValidator 控件

    RangeValidator 控件RangeValidator控件用于检测用户输入的值是否介于两个值之间。可以对不同类型的值进行比较,比如数字、日期以及字符。我们一般会用来验证输入的年龄或者考试的分数等。下面我们一块看看RangeValidator的属性:属性描述 BackColor 背景颜色 ControlToValidate

    2022年7月12日
    19
  • 【matlab】如何画分段函数的图像[通俗易懂]

    【matlab】如何画分段函数的图像[通俗易懂]MATLAB如何画分段函数的图像通常要用MATLAB画分段函数图像的话,总要分段去画非常麻烦,还需要holdon,现在教你一种简单化分段函数的方法,让你一下子知道这个方法的魅力!!工具/原料MATLAB软件代码方法/步骤1确定你需要的分段函数是怎样一个表

    2022年6月6日
    173
  • GIT生成SSH-KEY公钥放到服务器免密登录「建议收藏」

    GIT生成SSH-KEY公钥放到服务器免密登录

    2022年2月8日
    43
  • ExecutorService 的理解与使用「建议收藏」

    ExecutorService 的理解与使用「建议收藏」接口java.util.concurrent.ExecutorService表述了异步执行的机制,并且可以让任务在后台执行。壹個ExecutorService实例因此特别像壹個线程池。事实上,在java.util.concurrent包中的ExecutorService的实现就是壹個线程池的实现。ExecutorService样例这里有壹個简单的使用Java实现的

    2025年10月22日
    4

发表回复

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

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