是否可以使用 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:00 AM”?我想一种可能的解决方案是将我的数据库时间变成一个字符串,而不是一个整数,然后用前面的 0 保存 3 位数的时间,但如果可能的话我不想碰数据库(这需要编辑我的网络服务以及)