Android 用于在任何区域设置中分别显示日期和时间的通用函数
我有一个问题,我需要在任何地区分别显示日期和时间的通用函数。但是如果不检查Android 用于在任何区域设置中分别显示日期和时间的通用函数,android,date,time,calendar,locale,Android,Date,Time,Calendar,Locale,我有一个问题,我需要在任何地区分别显示日期和时间的通用函数。但是如果不检查calendar.getLocale() 此函数将以美国语言环境给出日期 static public String getDateFromCalendar(Calendar cal) { return String.format("%tD", cal); } 但是如果语言环境是俄语,我必须使用istead this:String.format(“%td.%tm.%tY”,cal); 我不想对所有
calendar.getLocale()
此函数将以美国语言环境给出日期
static public String getDateFromCalendar(Calendar cal) {
return String.format("%tD", cal);
}
但是如果语言环境是俄语,我必须使用istead this:String.format(“%td.%tm.%tY”,cal);
我不想对所有可能的语言环境使用条件操作。
请帮助找到方法做的更简单。 < P>假设你是java,我建议你考虑类<代码> java。文本。DateFormat < /代码>。背景是每个国家/地区都有自己的典型日期时间格式。例如:
public static String getDateFromCalendar(Calendar cal) {
// maybe get user-locale via ThreadLocal or via second method parameter
Locale locale = new Locale("ru", "Ru");
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
return dateFormat.format(cal.getTime());
}
您可以通过选择“短”、“中”、“长”或“全”来调整格式样式。对于中文本,输出为:
2014年4月5日
将其与Locale.US的输出进行比较,得出:2014年4月5日
这是Java语言吗?可以,但dateFormat对象包括日历实例和Locale。我不想把日历信息翻一番。是否可以使用dateFormat.setCalendar(cal)作为初始化对象的示例?或者别的什么。我在DateFormat类中找不到用于输出当前日期或时间的非静态函数。@MonotypeDateFormat
需要两个参数-样式和区域设置。样式由您的用例需求定义,区域设置可以由用户首选项(无论从何处获得)进行评估。然后您的方法getDateFromCalendar(…)
可以使用给定的示例代码格式化Calendar
类型的方法参数。我使用的new gregoriacalendar()
只是一个例子,使用方法参数,如dateFormat.format(cal.getTime())
-无需加倍。