Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用joda time将3位数的24小时制转换为12小时制?_Java_Android_Datetime - Fatal编程技术网

Java 如何使用joda time将3位数的24小时制转换为12小时制?

Java 如何使用joda time将3位数的24小时制转换为12小时制?,java,android,datetime,Java,Android,Datetime,是否可以使用joda time将3位时间转换为HH:mm a格式?我试过以下方法 int databaseTime = cursor.getInt(TIME); DateTimeFormatter worldTime = DateTimeFormat.forPattern("HHmm"); String localTime = worldTime.parseDateTime(databaseTime); 这对于1000以上的数据库中的任何时间都非常有效,但是如果数据库超时为100-900(01

是否可以使用joda time将3位时间转换为HH:mm a格式?我试过以下方法

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);
stringdbtime=String.valueOf(cursor.getInt(Globals.CLASSTIME));
字符串nextClassTime=(dbTime.length()<4)?“0”+dbTime:dbTime;
DateTimeFormatter worldTime=DateTimeFormat.forPattern(“HHmm”);
DateTimeFormatter normalTime=DateTimeFormat.forPattern(“hh:mm a”);
LocalTime wt=worldTime.parseLocalTime(nextClassTime);
字符串lt=normalTime.print(wt);
但这会将“当地时间”打印为“07:00 AM”


有没有办法让它返回“上午7:00”?我想一个可能的解决方案是将我的数据库时间转换成字符串,而不是整数,然后用前面的0保存3位数的时间,但如果可能的话,我不想碰数据库(这也需要编辑我的Web服务)

@新的白痴是对的,状态是

较短的数字将被零填充到此数量

因此,只应填充“h”,而不填充“hh”


此外,你应该考虑使用一个很长的存储时间,超过INT.SQL日期也是一个不错的选择。

尝试<代码>“H:MM”/代码>和“检查”或“HMM”,因为没有迹象表明有冒号。不过,根据实现情况,它可能仍然无法做正确的事情。(我知道野田佳彦时间会。)H:mm a还会解释“上午10:00”/“晚上10:00”吗?让我试试编辑:很好@那么,你能不能发布一个答案,这样我就可以接受它,然后在SQL日期向Snicolas投票推荐?谢谢你的推荐。如果@TheNewIdiot不将他的答案作为解决方案发布,我会将你的答案标记为已接受。我知道这很愚蠢,但我在Joda API指南中找不到ISO格式部分来记住H、hh、hh等之间的区别。我接受了这一点,因为第一个人从未将他的答案作为答案发布。谢谢大家!!