用途:格式化时间
使用场景
把日期按照不同的需求格式化成对应的日期字符串
项目引用
此博文的依据:hutool-5.6.5版本源码
方法摘要
方法明细
方法名称:cn.hutool.core.date.DateUtil.parseLocalDateTime(java.lang.CharSequence)
方法描述
构建LocalDateTime对象
格式:yyyy-MM-dd HH:mm:ss
支持版本及以上
参数描述:
返回值:
DateTime对象
参考案例:
String dateStr = "Wed Sep 16 11:26:23 CST 2009"; SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.JDK_DATETIME_PATTERN, Locale.US); sdf.setTimeZone(TimeZone.getTimeZone("America/Chicago")); final DateTime parse = DateUtil.parse(dateStr, sdf); FastDateFormat fdf = FastDateFormat.getInstance(DatePattern.JDK_DATETIME_PATTERN, TimeZone.getTimeZone("America/Chicago"), Locale.US); final DateTime parse2 = DateUtil.parse(dateStr, fdf); Assert.assertEquals(parse, parse2);
参考案例:
String ymd = DateUtil.parse("2021-05-16 21:20:15", "yyyy-MM-dd",Locale.US).toString(DatePattern.PURE_DATE_PATTERN); Assert.assertEquals("20210516", ymd);
String ymd = DateUtil.parse("2021-05-16 21:20:15", "yyyy/MM/dd HH:mm:ss","yyyy.MM.dd HH:mm:ss","yyyy-MM-dd HH:mm:ss").toString(DatePattern.PURE_DATE_PATTERN); Assert.assertEquals("20210516", ymd);
参考案例:
String dateStr1 = "2018-09-13T05:34:31Z"; DateTime dt = DateUtil.parseUTC(dateStr1); // parse方法支持UTC格式测试 DateTime dt2 = DateUtil.parse(dateStr1); Assert.assertEquals(dt, dt2); // 默认使用Pattern对应的时区,即UTC时区 String dateStr = dt.toString(); Assert.assertEquals("2018-09-13 05:34:31", dateStr); // 使用当前(上海)时区 dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); Assert.assertEquals("2018-09-13 13:34:31", dateStr); dateStr1 = "2018-09-13T13:34:32+0800"; dt = DateUtil.parseUTC(dateStr1); dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); Assert.assertEquals("2018-09-13 13:34:32", dateStr); dateStr1 = "2018-09-13T13:34:33+08:00"; dt = DateUtil.parseUTC(dateStr1); dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); Assert.assertEquals("2018-09-13 13:34:33", dateStr); dateStr1 = "2018-09-13T13:34:34+0800"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); Assert.assertEquals("2018-09-13 13:34:34", dateStr); dateStr1 = "2018-09-13T13:34:35+08:00"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); Assert.assertEquals("2018-09-13 13:34:35", dateStr); dateStr1 = "2018-09-13T13:34:36.999+0800"; dt = DateUtil.parseUTC(dateStr1); final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatePattern.NORM_DATETIME_MS_PATTERN); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); dateStr = dt.toString(simpleDateFormat); Assert.assertEquals("2018-09-13 13:34:36.999", dateStr); dateStr1 = "2018-09-13T13:34:37.999+08:00"; dt = DateUtil.parseUTC(dateStr1); dateStr = dt.toString(simpleDateFormat); Assert.assertEquals("2018-09-13 13:34:37.999", dateStr); dateStr1 = "2018-09-13T13:34:38.999+0800"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(simpleDateFormat); Assert.assertEquals("2018-09-13 13:34:38.999", dateStr); dateStr1 = "2018-09-13T13:34:39.999+08:00"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(simpleDateFormat); Assert.assertEquals("2018-09-13 13:34:39.999", dateStr); // 使用UTC时区 dateStr1 = "2018-09-13T13:34:39.99"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(); Assert.assertEquals("2018-09-13 13:34:39", dateStr);
方法明细
方法名称:cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence)
方法描述
将日期字符串转换为{@link DateTime}对象,格式:
yyyy-MM-dd HH:mm:ss
yyyy/MM/dd HH:mm:ss
yyyy.MM.dd HH:mm:ss
yyyy年MM月dd日 HH时mm分ss秒
yyyy-MM-dd
yyyy/MM/dd
yyyy.MM.dd
HH:mm:ss
HH时mm分ss秒
yyyy-MM-dd HH:mm
yyyy-MM-dd HH:mm:ss.SSS
yyyyMMddHHmmss
yyyyMMddHHmmssSSS
yyyyMMdd
EEE, dd MMM yyyy HH:mm:ss z
EEE MMM dd HH:mm:ss zzz yyyy
yyyy-MM-dd'T'HH:mm:ss'Z'
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
yyyy-MM-dd'T'HH:mm:ssZ
yyyy-MM-dd'T'HH:mm:ss.SSSZ
支持版本及以上
参数描述: