DateUtils.formate()函数的“bug”
写在前面
项目功能测试, 日期格式转换出现个诡异的问题, 转换后的时间总是和系统当前时间相差8小时, 问题是另一个项目和这个代码完全一样, DateUtils.java, 包括formatDate()方法, 可是结果让我郁闷半天.
测试代码
public static void main(String[] args) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String s = DateUtils.formatDate(date, Constants.DD_MM_YYYY_HH_MM_SS_DOT);
String s1 = DateUtils.formatDate(date, Constants.SIMPLE_YYYY_MM_DD_HH_MM_SS_SSS);
String s2 = DateUtils.formatDate(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(s);
System.out.println(s1);
System.out.println(s2);
System.out.println(simpleDateFormat.format(date));
}
输出结果
看下面的输出时间, 直接蒙了...
17.10.2019 11:03:49
20191017110349987
2019-10-17 11:03:49
2019-10-17 19:03:49
原因分析
原因
导错 DateUtils工具类的包, 本应想导入的是自定义的DateUtils.java, 路径为import org.jeecgframework.core.util.DateUtils;
实际导入的是import org.apache.http.client.utils.DateUtils;

查看代码
org.apache.http.client.utils.DateUtils;取出的时间是GMT, 因此取出的时间总是比系统时间(北京时间)小8小时. GMT+8才是北京时间.

重新导包后正常结果:
sms_txt中的时间是转为String类型后的日期时间.

小结
开发工具虽然好用, 但import时还是要细心.
DateUtils.formate()函数的“bug”的更多相关文章
- JavaScript使用纯函数避免bug
纯函数 一.纯函数 定义:纯函数是指不依赖并且不修改其作用域之外的函数.通过以下几个示例来认识纯函数: var a = 10; //纯函数 function foo(num){ return num ...
- laravel5.1关于lists函数的bug
查询语句为: class DateAttrModel extends BaseModel{ -- static function getDays(--){ $days = self::lists('d ...
- mvc关于pots请求 哪个函数 出现bug研究
这样能请求home下的updateA函数 这样能请求home下的update函数,不能请求updateA函数
- C++11版本不能使用一个单行命名空间方式特化一个函数的bug
warning: specialization of ‘template<class _Iterator> struct std::iterator_traits’ in differen ...
- 处理sevenzipsharp 检查密码函数的Bug
using (SevenZipExtractor extr = new SevenZipExtractor(tbPackagePath.Text, "www.pc6.com")) ...
- matlab中xlsread函数的bug
在使用[num txt data]=xlsread('filename')时.num存所有数值型数据,非数值型用NaN表示,txt存非数值型数据,数值型数据的位置为空. 如果filename中的第一行 ...
- CMSIS DSP Lib:RFFT函数的bug
调用arm_rfft_fast_init_f32之后,还有两个成员需要初始化: arm_rfft_fast_instance_f32::pTwiddleRFFT = twiddleCoef_rfft_ ...
- Cordova webapp实战开发:(7)如何通过简单的方法做到,不重新发布APP来修复bug、增加功能、或者躲开苹果的一些严格审核?
到<Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?>为止,我们已经大体学会了如何使用Cordova了,那些都是使用Cordova的开发者必备的技能. ...
- day3-Python集合、函数、文件操作,python包的概念
本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...
随机推荐
- Vue 中 $nextTick() 的应用
Vue 在更新 DOM 时是异步执行的. 只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更.如果同一个 watcher 被多次触发,只会被推入到队列中一次.这种在缓 ...
- MySQL 触发器学习-markdown->html 格式测试
<!doctype html>触发器 figure:first-child { margin-top: -20px; } #write ol, #write ul { position: ...
- Linux more与less命令
1.命令简介 more (more) 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比,方便逐页阅读(file perusal filter fo ...
- go语言每个工程是不是都要单独设置GOPATH?
go语言每个工程是不是都要单独设置GOPATH?比如我的go项目都统一管理在d:/workspace/go_work/目录下面,该目录下有3个项目project_01,project_02,pro ...
- 关于 " i=i++"是否等价于"i=i+1"的问题探讨 -Java版/C版
如题 (总结要点) 假设i=1 ,那么 i=i++ 的结果也就是2, 对吗? 不对,是1. -总结如下: 测试过程如下: 1.java版 public class Test { public stat ...
- 项目Beta冲刺(团队) —— 总结
所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺--总结篇 团队名称 待就业六人组 后端源码 Github地址 APP源码 Github地址 在线评审表 腾讯文档地址 Beta版本A ...
- 实时查看mysql当前连接数
如何实时查看mysql当前连接数? 1.查看当前所有连接的详细资料:./mysqladmin -uadmin -p -h10.140.1.1 processlist 2.只查看当前连接数(Thread ...
- Python下编写Windows自动化测试软件
https://www.jianshu.com/p/be3c46c7a905 uiautomation模块学习笔记 前段时间,由于个人需要,在网上查找了一些关于Windows平台下自动化测试的资料,最 ...
- Angular vs React---React-ing to change
这篇文章的全局观和思路一级棒! The Fairy Tale Cast your mind back to 2010 when users started to demand interactive ...
- input type=file实现图片上传
<label for="file"> <img src="images/morende.jpg" alt=""> & ...