>我需要将当前时间获取为 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)};
}