时间和秒的问题显示1:10而不是13:10

时间:2013-11-25 15:44:25

标签: java unit-testing junit jodatime

您好我有以下格式日期的课程:

public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, hh:mm";


      public static String formatDate(Date date , String pattern) {
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            String formatDate = "";
            if(date != null) {
                formatDate = sdf.format(date);
            }
            return formatDate;
        }

我的单元测试如下所示:

@Test
public void testDateFormat(){

      DateTime dateTime = new DateTime(2013, 11, 01, 13, 10, 00, 00); 
      Date date = dateTime.toDate(); 
      Assert.assertEquals("01 November 2013, 13:10", Main.formatDate(date,Main.DATE_DDMMMMYYHHMM_PATTERN)); 


}

虽然我在我的测试中将时间和秒定义为13:10,但它显示为2013年11月1日, 01:10 。任何建议请我能做什么以便时间第二个可以显示为 13:10

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:1)

将小时格式从hh更改为HH

public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, HH:mm";

根据docs

h - Hour in am/pm (1-12)
H - Hour in day (0-23)

答案 1 :(得分:1)

试试这个:

public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, HH:mm";

您需要将hh更改为HH

HH格式代表HOUR(0-23)中的时间,而h h代表1-12 am/pm格式

另请查看Oracle docs以供参考。