繁体   English   中英

android / java -example日出日落计算-将时间从24小时更改为12小时格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM