2014-09-03 145 views
4

我很新的乔达API和我有这样调用:如何使用JodaTime将本地时间转换为am/pm时间格式?

LocalTime time = new LocalTime("13"); 

它打印为:13:00:00.000

我希望我能像这样显示它:1:00 PM

我该如何做到这一点?

在此先感谢

+0

复制? http://stackoverflow.com/questions/18734452/display-current-time-in-12-hour-format-with-am-pm – theMarceloR 2014-09-03 13:48:40

+0

@ theMarceloR不是重复。你链接到的是使用'SimpleDateFormat'而@batman询问有关JodaTime – Freiheit 2014-09-03 13:50:17

+0

好吧,我站在纠正,这是我的upvote @batman。顺便说一句,我是一个巨大的粉丝。 – theMarceloR 2014-09-03 13:55:40

回答

1

尝试以下操作:

DateTimeFormatter builder = DateTimeFormat.forPattern("hh:mm:ss.SSa"); 
+0

它给我一个错误:线程“主”java.lang.IllegalArgumentException异常:无效格式:“09:00:00.000”在新的LocalTime(“9”)为“0”格式错误,当我调用builder.parseLocalTime (time.toString()) – batman 2014-09-03 13:58:34

+0

@batman为什么你现在要解析?在你的问题中,你谈论格式/打印,这个答案就足够了。如果你想分析另一种格式的字符串,那么你当然需要另一种模式。 – 2014-09-03 15:01:57

+2

@StackFlowed我不喜欢“比你更知识的守门员”的态度。 btwn文档和知识有所不同。这就是为什么课程与教师和书籍一起教授的原因。 – ekeyser 2015-06-26 18:16:20

2

我这样做:

LocalTime time = new LocalTime("13");  
    DateTimeFormatter fmt = DateTimeFormat.forPattern("h:mm a"); 
    String str = fmt.print(time); 

,并获得此输出STR:

"1:00 PM" 
+0

给了我这样的错误抛出一个错误:线程“主”java.lang.IllegalArgumentException异常:无效的格式:“09:00:00.000”在新的LocalTime(“9”)“0”我调用builder.parseLocalTime(time.toString()) – batman 2014-09-03 14:18:48