[英]android/java -example sunrise sunset calc - changing time from 24hr to 12hr format
在此处查看此示例项目的源代码: https : //github.com/quakig/sunrisesunsettime/tree/master/SunriseSunsetTime
它计算日出/日落时间。 查看代码,我看不到它们确定时间是12小时还是24小时格式返回的位置。 在我的手机上运行示例apk,它将以24小时格式返回。
确定在代码中的哪个位置? 还是我会在布局文件属性而不是javascript中寻找?
它位于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小时格式。
您可以使用Joda-Time库将一天中的时间字符串从24小时格式更改为12小时格式。
LocalTime
与Java捆绑在一起的java.util.Date和.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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.