2014-10-06 141 views
0

我有一个JodaDateTimeField对象startTime这是一个LocalTime。这意味着它包含一个小时(范围0-23),一分钟(0-59)和第二个(0-59)。乔达时间混淆将DateTimeField转换为文本/字符串

现在当我打电话给我的方法: startTime.getChronology().hourOfDay().getAsShortText(int fieldValue, Locale l) 我有点困惑; Locale我明白了,但是当我查找DateTimeField API here 时,没有真正的解释我应该为fieldValue输入什么。

是否有文档描述哪个整数引用哪个fieldValue?

现在;我已经试过只是在做startTime.getChronology().hourOfDay().toString()这不起作用。它只是返回这个文本:DateTimeField[hourOfDay]

回答

0

按照您自己给出的文档链接,参数fieldValue仅被描述为关联字段的数值。在你的情况下,它是一天中的时间值,因此是0到23之间的任何数字。

据我所知,方法getAsShortText(...)将不会真正产生一小时的文本,但只是以字符串形式产生数字。这种方法是专为那些真正拥有特殊文本形式的领域而设计的,比如月份或工作日。举例证明你的方法的琐碎(代码是毫无意义的任何使用情况下):

LocalTime time = new LocalTime(14, 45, 30); 
String text = time.getChronology().hourOfDay().getAsShortText(12, Locale.FRENCH); 
System.out.println("Hour-of-day 12 as text: " + text); 
// output: Hour-of-day 12 as text: 12 

也许你困惑是因为你心目中的java.util.Calendar JDK级领域的常量,但该领域的常量表示场标识符,而不是字段值。在Joda-Time中,DateTimeField-对象可以实现相同的功能(即识别字段)。

相关问题