Java 将24小时时钟时间转换为Joda时间的am/pm

Java 将24小时时钟时间转换为Joda时间的am/pm,java,jodatime,Java,Jodatime,我刚开始使用,并让它正确显示我的日期(“军事时间”),但我宁愿它是上午/下午。查找它,它提到了我认为是HH值,所以我尝试编写一个循环,将其分解为AM/Pm,但始终没有成功 DateTime dtf = new DateTime(wikiParsedDate); if (hourOfDay == 00) { hourOfDay == 12; DateTimeFormatter builder = DateTimeFormat.forPattern

我刚开始使用,并让它正确显示我的日期(“军事时间”),但我宁愿它是上午/下午。查找它,它提到了我认为是HH值,所以我尝试编写一个循环,将其分解为AM/Pm,但始终没有成功

    DateTime dtf = new DateTime(wikiParsedDate);


    if (hourOfDay == 00) {
        hourOfDay == 12;
        DateTimeFormatter builder = DateTimeFormat.forPattern( "dd-MM-yyyy HH:mm:ss.SS'AM" );
        return builder.print(dtf);
    } else if (0 < hourOfDay && hourOfDay < 12) {
        DateTimeFormatter builder = DateTimeFormat.forPattern( "dd-MM-yyyy HH:mm:ss.SS'AM" );
        return builder.print(dtf);
    } else if (hourOfDay > 12) {
        hourOfDay - 12 == hourOfDay;
        DateTimeFormatter builder = DateTimeFormat.forPattern( "dd-MM-yyyy HH:mm:ss.SS'PM" );
        return builder.print(dtf);
    }

}
DateTime dtf=newdatetime(wikiParsedDate);
如果(小时天数==00){
小时天数==12;
DateTimeFormatter builder=DateTimeFormat.forPattern(“dd-MM-yyy-HH:MM:ss.ss'AM”);
返回生成器打印(dtf);
}否则如果(012){
hourOfDay-12==hourOfDay;
DateTimeFormatter builder=DateTimeFormat.forPattern(“dd-MM-yyy-HH:MM:ss.ss'PM”);
返回生成器打印(dtf);
}
}

查看的API文档。这应该满足您的要求:

DateTimeFormatter builder = DateTimeFormat.forPattern("dd-MM-yyyy hh:mm:ss.SSa");

不同病例无需并发症。

hourOfDay-12==hourOfDay似乎是错的。你的意思是
hourOfDay-=12?但这也行不通。它必须类似于
dtf=dtf.withHourOfDay(dtf.getHourOfDay()-12)
,但这也是不正确的,因为它应该留给格式化程序来编写AM或PMA,并查看
DateTimeFormat.forStyle
以生成格式和语言本地化为特定的字符串表示。什么是.SSa?这是后跟am/pm的空格吗?@IgorGanapolsky否。请参阅的API文档
SS
=一秒的分数,
a
=AM/PM。