写在前面

项目功能测试, 日期格式转换出现个诡异的问题, 转换后的时间总是和系统当前时间相差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”的更多相关文章

  1. JavaScript使用纯函数避免bug

    纯函数 一.纯函数 定义:纯函数是指不依赖并且不修改其作用域之外的函数.通过以下几个示例来认识纯函数: var a = 10; //纯函数 function foo(num){ return num ...

  2. laravel5.1关于lists函数的bug

    查询语句为: class DateAttrModel extends BaseModel{ -- static function getDays(--){ $days = self::lists('d ...

  3. mvc关于pots请求 哪个函数 出现bug研究

    这样能请求home下的updateA函数 这样能请求home下的update函数,不能请求updateA函数

  4. C++11版本不能使用一个单行命名空间方式特化一个函数的bug

    warning: specialization of ‘template<class _Iterator> struct std::iterator_traits’ in differen ...

  5. 处理sevenzipsharp 检查密码函数的Bug

    using (SevenZipExtractor extr = new SevenZipExtractor(tbPackagePath.Text, "www.pc6.com")) ...

  6. matlab中xlsread函数的bug

    在使用[num txt data]=xlsread('filename')时.num存所有数值型数据,非数值型用NaN表示,txt存非数值型数据,数值型数据的位置为空. 如果filename中的第一行 ...

  7. CMSIS DSP Lib:RFFT函数的bug

    调用arm_rfft_fast_init_f32之后,还有两个成员需要初始化: arm_rfft_fast_instance_f32::pTwiddleRFFT = twiddleCoef_rfft_ ...

  8. Cordova webapp实战开发:(7)如何通过简单的方法做到,不重新发布APP来修复bug、增加功能、或者躲开苹果的一些严格审核?

    到<Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?>为止,我们已经大体学会了如何使用Cordova了,那些都是使用Cordova的开发者必备的技能. ...

  9. day3-Python集合、函数、文件操作,python包的概念

    本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...

随机推荐

  1. Java语法知识点2

    1. 基本数据类型的包装类 byte   Byte short   Short int    Integer long  Long float  Float double  Double boolea ...

  2. 如何实现android和服务器长连接

    转载 这种功能实际上就是数据同步,同时要考虑手机本身.电量.网络流量等等限制因素,所以通常在移动端上有一下两个解决方案: 1.一种是定时去server查询数据,通常是使用HTTP协议来访问web服务器 ...

  3. Spark广播变量和累加器

    一.广播变量图解 二.代码 val conf = new SparkConf() conf.setMaster("local").setAppName("brocast& ...

  4. Django 之 restframework 解析器源码分析

    解析器分类: 1. JSONPaser ----> 解析 JSON-serialized data (解析JSON序列化的数据) 2.FormParser ---->解析form 表单中 ...

  5. TensorFlow之estimator详解

    Estimator初识 框架结构 在介绍Estimator之前需要对它在TensorFlow这个大框架的定位有个大致的认识,如下图示: 可以看到Estimator是属于High level的API,而 ...

  6. jmeter4+win10+jdk1.8环境下,jmeter输入中文就卡死的问题

    问题描述:jmeter4+win10+jdk1.8环境下,输入中文jmeter卡死: 解决思路: 起初以为是win10系统不兼容的问题,装了个虚拟机,在虚拟机里面装了win7,然后再装了jmeter, ...

  7. Windows下安装Zabbix agent

    下载Windows版本的Zabbix agent安装包:https://www.zabbix.com/cn/download_agents#tab:40LTS 有两种安装方式: (1)需要手动安装,安 ...

  8. js延迟加载的性能优化

    js的延迟加载有助于提高页面的加载速度,特别是竞价优化站是有一定的好处,今天来说说我是如何优化竞价站打开速度! 案例:http://yzmb.pengchenggroup.cn/ 动态创建DOM方式 ...

  9. scala中可以执行外部命令Process

    后续用到在总结 Process(s"hadoop fs -rm -r ${path}").!!

  10. Spark SQL中的Catalyst 的工作机制

      Spark SQL中的Catalyst 的工作机制 答:不管是SQL.Hive SQL还是DataFrame.Dataset触发Action Job的时候,都会经过解析变成unresolved的逻 ...