mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-12-06 17:18:54 +08:00
Merge pull request #4161 from asukavuuyn/v5-dev
fix:12小时制ceiling和round问题
This commit is contained in:
commit
ab936327a2
@ -73,13 +73,13 @@ public class DateModifier {
|
||||
case ROUND:
|
||||
int min = isAM ? 0 : 12;
|
||||
int max = isAM ? 11 : 23;
|
||||
int href = (max - min) / 2 + 1;
|
||||
int href = min + (max - min) / 2 + 1;
|
||||
int value = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
calendar.set(Calendar.HOUR_OF_DAY, (value < href) ? min : max);
|
||||
break;
|
||||
}
|
||||
// 处理下一级别字段
|
||||
return modify(calendar, dateField + 1, modifyType);
|
||||
return modify(calendar, dateField + 1, modifyType, truncateMillisecond);
|
||||
}
|
||||
|
||||
final int endField = truncateMillisecond ? Calendar.SECOND : Calendar.MILLISECOND;
|
||||
|
||||
@ -130,6 +130,33 @@ public class DateUtilTest {
|
||||
assertEquals("2020-02-29 12:59:59.000", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cellingAmPmTest(){
|
||||
final String dateStr2 = "2020-02-29 10:59:34";
|
||||
final Date date2 = DateUtil.parse(dateStr2);
|
||||
|
||||
|
||||
DateTime dateTime = DateUtil.ceiling(date2, DateField.AM_PM);
|
||||
assertEquals("2020-02-29 11:59:59.999", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
|
||||
dateTime = DateUtil.ceiling(date2, DateField.AM_PM, true);
|
||||
assertEquals("2020-02-29 11:59:59.000", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
}
|
||||
|
||||
@Test void roundAmPmTest() {
|
||||
final String dateStr = "2020-02-29 13:59:34";
|
||||
final Date date = DateUtil.parse(dateStr);
|
||||
|
||||
DateTime dateTime = DateUtil.round(date, DateField.AM_PM);
|
||||
assertEquals("2020-02-29 12:59:59.000", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
|
||||
final String dateStr2 = "2020-02-29 18:59:34";
|
||||
final Date date2 = DateUtil.parse(dateStr2);
|
||||
|
||||
DateTime dateTime2 = DateUtil.round(date2, DateField.AM_PM);
|
||||
assertEquals("2020-02-29 23:59:59.000", dateTime2.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ceilingDayTest() {
|
||||
final String dateStr2 = "2020-02-29 12:59:34";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user