填充零到单个数字以分钟格式

时间:2016-11-13 19:06:35

标签: java jodatime date-formatting

我的日期格式是yyyyMMddHHmm,从这个日期格式我需要提取年,月,日并添加1259作为HHmm来创建新日期, 我正在使用joda日期时间。

 String date = (Integer.toString(orderDate.getYear()) + Integer.toString(orderDate.getMonthOfYear()) + Integer.toString(orderDate.getDayOfMonth()) + "1259");

 orderDate = DateTimeFormat.forPattern(DATE_FORMAT).withZone(DateTimeZone.forTimeZone(TimeZone.getTimeZone(date1TimeZone))).parseDateTime(String.valueOf(date));

但如果orderDate碰巧是201611051212 我得到的结果是20161151259,即月份的值是5,我想要05.是否有时钟输入的格式说明符?

1 个答案:

答案 0 :(得分:3)

来自Joda docs:“模式字母的数量决定了格式”。

修复是使用Joda metohds修改日期,因此您不需要发明用于操纵字符串的内容。

    // your initial date
    DateTime initialDate = DateTimeFormat.forPattern("yyyyMMddHHmm").parseDateTime("201611051212");

    // the operation you're trying emulate by adding a string, better to use specialized method
    DateTime resultingDate = initialDate.withTime(12, 59, 0, 0);

    // resulting string representation matches to what you specified as an expected result
    String result = DateTimeFormat.forPattern("yyyyMMddHHmm").print(resultingDate);
    Assert.assertEquals("201611051259", result);