java日期转换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_21483933/article/details/51941639

日期表示类型

1. 获取long类型的日期格式
    long time = System.currentTimeMillis();
    System.out.printf(time+"");
    Date date =new Date();
    System.out.println(date.getTime());
2. 获取制定格式的日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    Date date =new Date();
    System.out.println(sdf.format(date) );
 3. 把制定格式的日期转为date或者毫秒值
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    Date date = sdf.parse("2016-05-22 10:15:21");
    long mills = date.getTime();
  • 说明:System.currentTimeMillis()并不能精确到1ms的级别,它取决于运行的系统,你再windows,mac,linux精确的范围都有差异,对于有高精度时间的要求,不能使用这个

日期计算

  1. 最方便的方式是将时间转为毫秒值进行计算
    Date from =new Date();
    Thread.sleep(200);//线程休眠2ms
    Date to =new Date();
    System.out.println(to.getTime()-from.getTime());

高精度时间

    long time1 =System.nanoTime();
    System.out.printf(time1+"");
  • 说明:System.nanoTime()提高了ns级别的精度,1ms=1000000ns,

如果文章对你有帮助,请去我的博客留个言吧! 我的博客

展开阅读全文

java 日期转换异常

11-14

[code=java]rnCaused by: java.text.ParseException: Unparseable date: "2017-01-06 00:00:00"rn at java.text.DateFormat.parse(DateFormat.java:357) ~[na:1.7.0_79]rn at com.zt.hrc.util.DateUtil.fomatDate(DateUtil.java:335) ~[classes/:na]rn ... 116 common frames omittedrn[ERROR] 2016-11-14 08:56:15.668 [http-bio-8080-exec-4] c.z.h.resolver.MyExceptionResolver - ==============异常结束=============rn[DEBUG] 2016-11-14 08:56:15.668 [http-bio-8080-exec-4] o.s.web.servlet.DispatcherServlet - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: materialized View is [org.springframework.web.servlet.view.json.MappingJackson2JsonView: unnamed]; model is message=操作失败,【2017-01-06 00:00:00】日期校验不通过, errorCode=0, ok=falserncom.zt.hrc.exception.BizException: 操作失败,【2017-01-06 00:00:00】日期校验不通过rn at com.zt.hrc.util.DateUtil.fomatDate(DateUtil.java:337) ~[classes/:na]rn at com.zt.hrc.service.attendance.AttendanceSettingScheduleService.countTimesBiz(AttendanceSettingScheduleService.java:1345) ~[classes/:na]rn at com.zt.hrc.service.attendance.AttendanceSettingScheduleService$$FastClassBySpringCGLIB$$e3104224.invoke() ~[spring-core-4.0.4.RELEASE.jar:na]rn at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.0.4.RELEASE.jar:4.0.4.RELEASE]rn[/code]rn[img=https://img-bbs.csdn.net/upload/201611/14/1479094475_595040.png][/img]rnrn[code=java]rnDateUtil.javarn/**日期格式:yyyy-MM-dd HH:mm:ss**/rnpublic final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");rnrnpublic static Date fomatDate(String date, SimpleDateFormat format) rn rn if(StringUtils.isBlank(date)) rn return null;rn rn try rn //设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01rn format.setLenient(false);rn return format.parse(date);rn catch (ParseException e) rn throw new BizException(MessageFormat.format("操作失败,【0】日期校验不通过", date), e);rn rn rn[/code]rn本地测试怎么都没问题,还原不出来这错误到底是怎么弄出来的,有遇到过类似情况的大神吗? 论坛

没有更多推荐了,返回首页