我的日期格式是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.是否有时钟输入的格式说明符?
答案 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);