代号One Date在iOS和Android上给出不同的结果



>我需要将当前时间获取为 HH:mm。所以我写了这个方法来从当前日期获取小时和分钟:

    final public static String[] getArrayOfCurrentTime(){
    Dialog.show("", "La date est " + (new Date()).toString(), "OK", null);  
    // Android : La date est Thu Jul 07 17:00:34 CEST 2016
    // iOS : La date est 7 Juillet 2016
    String time = Util.split( (new Date()).toString(), " ")[3];
    String hour = Util.split( time, ":")[0];
    String  min = Util.split( time, ":")[1];
    String sec = Util.split( time, ":")[2];
    return new String []{hour, min, sec};
}

看起来Android给出了日期时间,而iOS给出了日期。

因此,在 iOS 上,我得到和数组索引超出界限。我在文档中找不到有关iOS和Android之间关于日期的行为差异的任何内容。我是否必须从纪元以来的毫秒计算结果,或者我错过了什么?

使用 SimpleDateFormat (https://www.codenameone.com/javadoc/com/codename1/l10n/SimpleDateFormat.html) 解析日期

为了保持它的可移植性(iOS和Android)并避免编写本机代码,我只使用Codename One方法自己进行了计算,如下所示:

final public static String[] getArrayOfCurrentTime(){
    Calendar cal = new Calendar(); // current Date and time
    long today = cal.getCurrentDate().getTime(); // only the date
    long now = System.currentTimeMillis(); // only time
    long minutesInDay = (now - today) / (60 * 1000); // number of minutes between midnight and now
    int nowHours = (int) (minutesInDay / 60);
    int nowMinutes = (int) ((minutesInDay / 60) % 60); 
    Dialog.show("", "L'heure est " + nowHours + ":" + nowMinutes, "OK", null); 
// (Android and iOS) L'heure est 18:10
    return new String []{Integer.toString(nowHours), Integer.toString(nowMinutes)};
}

相关内容

  • 没有找到相关文章

最新更新