查看此示例项目的源代码: https://github.com/quakig/sunrisesunsettime/tree/master/SunriseSunsetTime
计算日出/日落时间。看看代码,我看不出他们在12小时或24小时格式中返回时间的确定。在我的手机上运行示例apk,它以24小时格式返回。
代码中的哪个位置确定了?或者我会查看布局文件属性而不是javascript?
答案 0 :(得分:0)
它位于MainActivity中的transitTime方法:
protected String transitTime(String endtime, String starttime) {
SimpleDateFormat dt = new SimpleDateFormat("hh:mm");
Date startTime;
Date endTime;
long timdedifferencemillis = 0;
try {
startTime = dt.parse(starttime);
endTime = dt.parse(endtime);
timdedifferencemillis = endTime.getTime() - startTime.getTime(); // in
// milliseconds
} catch (ParseException e) {
e.printStackTrace();
}
int minutes = Math
.abs((int) ((timdedifferencemillis / (1000 * 60)) % 60));
int hours = Math
.abs((int) ((timdedifferencemillis / (1000 * 60 * 60)) % 24));
String hm = String.format("%02d h %02d min", hours, minutes);
return hm;
}
您必须自己调整才能返回12小时格式。
答案 1 :(得分:0)
您可以使用Joda-Time库将时间字符串从24小时格式更改为12小时格式。
LocalTime
与java.util.Date&与Java捆绑的.Calendar类,Joda-Time提供了一个类来表示没有日期或时区的时间。该类称为LocalTime
。
在Java 8中,新的java.time包(受Joda-Time启发)也有这样的类。但Java 8技术尚未在Android中复制。 Joda-Time适用于Android。
LocalTime localTime = LocalTime.parse( "15:43:21" );
DateTimeFormatter formatter = DateTimeFormat.forPattern( "h:m a" ); // Truncate seconds and fractional seconds.
String output = formatter.print( localTime );
转储到控制台。
System.out.println( "output: " + output ); // output: 3:43 PM