Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码名1-使用L10NManager而不是DateFormat(已弃用)获取当前区域设置日期时间格式_Java_Locale_Codenameone_Date Format - Fatal编程技术网

Java 代码名1-使用L10NManager而不是DateFormat(已弃用)获取当前区域设置日期时间格式

Java 代码名1-使用L10NManager而不是DateFormat(已弃用)获取当前区域设置日期时间格式,java,locale,codenameone,date-format,Java,Locale,Codenameone,Date Format,我的CodenameOne应用程序(Android应用程序的iOS端口)根据区域设置向用户显示日期-时间格式示例 这是我的Android应用程序中的Java代码: static String getTheCurrentLocaleDateTimeFormatString() { return ((SimpleDateFormat) DateFormat.getDateTimeInstance()).toLocalizedPattern(); } 例如,在我的语言环境中,我得到以下字符串

我的CodenameOne应用程序(Android应用程序的iOS端口)根据区域设置向用户显示日期-时间格式示例

这是我的Android应用程序中的Java代码:

static String getTheCurrentLocaleDateTimeFormatString() {
    return ((SimpleDateFormat) DateFormat.getDateTimeInstance()).toLocalizedPattern();
}
例如,在我的语言环境中,我得到以下字符串:

dd MMM y HH:mm:ss
无法在此基础上修改应用程序设计

此处的文档:

表示DateFormat已被弃用,并且在某些平台上存在问题,如iOS本身。它只用于此,顺便说一下,我把它放在我的Android应用程序中了

但是,如果我没有错的话,我不能使用它的方法,因为它们在CodenameOne中是不同的

文档中说使用L10NManager,但我必须更改代码


使用L10NManager实现相同目标的正确方法是什么?

您可以这样使用L10NManager:

String t = L10NManager.getInstance().formatDateTime(date);

我们也支持
SimpleDateFormat
,但它有点有限。我们在
com.codename1.l10n
中有一个版本,它在不同平台上的工作更加一致。

对不起,我的问题是关于格式字符串。问题中提供的代码示例在Android中工作,并生成类似“dd MMM y HH:mm:ss”的字符串。用户可以看到该字符串,而您的代码片段会生成一个类似“14 ago 2020,10:42:26”的日期。对于短/长格式,L10N类中还有几个其他格式选项。这些是由操作系统决定的,因此根据定义,它们是不一致的。如果您想要一致的格式,可以直接使用SimpleDataFormat并包含日期/时间的模式。我只需要当前语言环境日期-时间的格式字符串(带字母)。在SimpleDateFormat中肯定会使用它,以生成所提供的日期时间示例中的日期,因此可以添加一个方法,如getCurrentLocaleDatetimeFormatString()。是否可以添加该方法?否则是否有办法获取格式字符串(我需要它用于iOS端口,而不是Android)?我们没有iOS的格式字符串,因为它在那里不存在。L10NManager跳过日期格式化阶段,为您进行格式化。因此,我猜L10NManager知道所有区域设置,并执行一些字符串处理。我看到我的语言环境受到尊重,因为“14 ago 2020,10:42:26”是合适的格式之一。根据L10NManager正在使用的内部信息,是否完全不可能拥有格式字符串。我认为与字母(或特殊字母组)的通信是国际标准(见Android或Apple文档)