Codenameone 代号为1的本地化日期和时间

Codenameone 代号为1的本地化日期和时间,codenameone,Codenameone,这个问题不涉及通用Java,而只涉及代码名1 我试过: SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.FULL, SimpleDateFormat.FULL).format(new Date()); 返回(在模拟器和Android上): Sun Jan 13 14:41:35 CET 2019 如何获取日期和时间的本地化版本?我的意思是自动本地化,无需为每个区域设置指定格式 例如,当我在意大利智能手机上运行该应用程序时,我希望看到一

这个问题不涉及通用Java,而只涉及代码名1

我试过:

SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.FULL, SimpleDateFormat.FULL).format(new Date());
返回(在模拟器和Android上):

Sun Jan 13 14:41:35 CET 2019

如何获取日期和时间的本地化版本?我的意思是自动本地化,无需为每个区域设置指定格式

例如,当我在意大利智能手机上运行该应用程序时,我希望看到一个类似的字符串,如:

13 gennaio 2019,14:41:35

如果可能的话,没有一周中哪一天的名字,也没有“CET”


我注意到
(SimpleDateFormat.FULL,SimpleDateFormat.FULL)
(SimpleDateFormat.SHORT,SimpleDateFormat.SHORT)
在本例中返回相同的字符串。

您需要使用
L10NManager
,其中包括日期/时间的格式化程序,例如:

String asString = L10NManager.getInstance().formatDateLongStyle(date);

更新:在iPhone上,显示的是2019年1月13日,没有时间。相反,我需要的是时间,可能是Android、iPhone和web-app上的相同字符串。您使用的是可怕的旧日期时间类,多年前被java.time类取代。请参阅本地化的…
DateTimeFormatter.ofLocalized…
。如果Codename One不支持Java 8或更高版本,请了解Three Ten Backport和Three TenABP项目解决了我的问题。我注意到在Android、iPhone和web应用程序上返回的字符串之间几乎没有区别。例如,Android返回
14 gen 2019 11:20:33 AM
,iPhone返回
14 Jan 2019 11:15:20
,而Android Chrome上的web应用返回
14/1/2019,11:22:17
。这在Android/iOS上使用操作系统本机API进行格式化。我不确定它是否在web版本中正确实现。由于操作系统本机API将产生不同的结果,因此您会看到不同。