是否可以使用joda时间将3位数时间转换为HH:mm格式?我试过以下
int databaseTime = cursor.getInt(TIME);
DateTimeFormatter worldTime = DateTimeFormat.forPattern("HHmm");
String localTime = worldTime.parseDateTime(databaseTime);
这适用于1000以上数据库中的任何时间,但如果数据库的超时时间为100-900(0100-0900)且出现错误,例如“70不是一小时”或其他错误,则会出错(不是聪明到足以弄清700 = 0700)。
然后我尝试了
String dbTime = String.valueOf(cursor.getInt(Globals.CLASSTIME));
String nextClassTime = (dbTime.length() < 4) ? "0" + dbTime : dbTime;
DateTimeFormatter worldTime = DateTimeFormat.forPattern("HHmm");
DateTimeFormatter normalTime = DateTimeFormat.forPattern("hh:mm a");
LocalTime wt = worldTime.parseLocalTime(nextClassTime);
String lt = normalTime.print(wt);
但是这会将“当地时间”打印为“07:00 AM”
有没有办法让它返回“早上7点”?我想一个可能的解决方案是将我的数据库时间变成一个字符串而不是一个整数,然后用前面的0保存3位数,但是如果可能的话我想不要触摸数据库(这需要编辑我的webservices)以及)
答案 0 :(得分:2)
@The New Idiot是对的,docs of Joda状态是
较短的数字是零填充到此数量。
所以“h”只应填充,而“hh”则不填充。
另外,你应该考虑使用long来存储时间,而不是int。 SQL Date也是一个不错的选择。