如何在 android 中更改日期时间语言
How to change date time language in android
我们如何在不更改设备语言的情况下更改 android 中的 date/time 语言。
下面是我当前的代码。
下面的代码根据设备语言而变化。但我想在不更改设备语言设置的情况下进行更改
</p>
<p>public static String formatTime(Date time)
{
String timeFormat = UserSettingManager.getUserSetting(UserSettingManager.PREF_TIME_FORMAT);
if(StringUtils.isEmptyOrWhitespace(timeFormat))
{
timeFormat = DEFAULT_TIME_FORMAT;
}</p>
SimpleDateFormat formatter;
try
{
formatter = new SimpleDateFormat(timeFormat);
}
catch(Exception e)
{
formatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
}
return formatter.format(time);
}
试试这个:
public static String formatTime(Date time, Locale locale){
String timeFormat = UserSettingManager
.getUserSetting(UserSettingManager.PREF_TIME_FORMAT);
if(StringUtils.isEmptyOrWhitespace(timeFormat)){
timeFormat = DEFAULT_TIME_FORMAT;
}
SimpleDateFormat formatter;
try {
formatter = new SimpleDateFormat(timeFormat, locale);
} catch(Exception e) {
formatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT, locale);
}
return formatter.format(time);
}
然后点赞
Log.e("CHINESE DATE", formatTime(new Date(), Locale.CHINESE));
编辑
如果您在默认列表中找不到语言环境,您可以使用其构造函数实例化一个语言环境
:
Locale spanish = new Locale("es", "ES");
于是就变成了
Log.e("SPANISH DATE", formatTime(new Date(), new Locale("es", "ES"));
java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context)
final Calendar now = Calendar.getInstance()
mDummyDate.setTimeZone(now.getTimeZone())
// We use December 31st because it's unambiguous when demonstrating the date format
// We use 13:00 so we can demonstrate the 12/24 hour options
mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
Date dummyDate = mDummyDate.getTime();
mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
mTimeZone.setSummary(getTimeZoneText(now.getTimeZone()));
mDatePref.setSummary(shortDateFormat.format(now.getTime()));
mDateFormat.setSummary(shortDateFormat.format(dummyDate));
mTime24Pref.setSummary(DateFormat.getTimeFormat(gtActivity()).format(dummyDate));
java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context)
final Calendar now = Calendar.getInstance()
mDummyDate.setTimeZone(now.getTimeZone())
// We use December 31st because it's unambiguous when demonstrating the date format
// We use 13:00 so we can demonstrate the 12/24 hour options
mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
Date dummyDate = mDummyDate.getTime();
mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
mTimeZone.setSummary(getTimeZoneText(now.getTimeZone()));
mDatePref.setSummary(shortDateFormat.format(now.getTime()));
mDateFormat.setSummary(shortDateFormat.format(dummyDate));
mTime24Pref.setSummary(DateFormat.getTimeFormat(gtActivity()).format(dummyDate));
我们如何在不更改设备语言的情况下更改 android 中的 date/time 语言。
下面是我当前的代码。 下面的代码根据设备语言而变化。但我想在不更改设备语言设置的情况下进行更改
</p>
<p>public static String formatTime(Date time)
{
String timeFormat = UserSettingManager.getUserSetting(UserSettingManager.PREF_TIME_FORMAT);
if(StringUtils.isEmptyOrWhitespace(timeFormat))
{
timeFormat = DEFAULT_TIME_FORMAT;
}</p>
SimpleDateFormat formatter;
try
{
formatter = new SimpleDateFormat(timeFormat);
}
catch(Exception e)
{
formatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
}
return formatter.format(time);
}
试试这个:
public static String formatTime(Date time, Locale locale){
String timeFormat = UserSettingManager
.getUserSetting(UserSettingManager.PREF_TIME_FORMAT);
if(StringUtils.isEmptyOrWhitespace(timeFormat)){
timeFormat = DEFAULT_TIME_FORMAT;
}
SimpleDateFormat formatter;
try {
formatter = new SimpleDateFormat(timeFormat, locale);
} catch(Exception e) {
formatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT, locale);
}
return formatter.format(time);
}
然后点赞
Log.e("CHINESE DATE", formatTime(new Date(), Locale.CHINESE));
编辑
如果您在默认列表中找不到语言环境,您可以使用其构造函数实例化一个语言环境 :
Locale spanish = new Locale("es", "ES");
于是就变成了
Log.e("SPANISH DATE", formatTime(new Date(), new Locale("es", "ES"));
java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context)
final Calendar now = Calendar.getInstance()
mDummyDate.setTimeZone(now.getTimeZone())
// We use December 31st because it's unambiguous when demonstrating the date format
// We use 13:00 so we can demonstrate the 12/24 hour options
mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
Date dummyDate = mDummyDate.getTime();
mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
mTimeZone.setSummary(getTimeZoneText(now.getTimeZone()));
mDatePref.setSummary(shortDateFormat.format(now.getTime()));
mDateFormat.setSummary(shortDateFormat.format(dummyDate));
mTime24Pref.setSummary(DateFormat.getTimeFormat(gtActivity()).format(dummyDate));
java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context)
final Calendar now = Calendar.getInstance()
mDummyDate.setTimeZone(now.getTimeZone())
// We use December 31st because it's unambiguous when demonstrating the date format
// We use 13:00 so we can demonstrate the 12/24 hour options
mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
Date dummyDate = mDummyDate.getTime();
mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
mTimeZone.setSummary(getTimeZoneText(now.getTimeZone()));
mDatePref.setSummary(shortDateFormat.format(now.getTime()));
mDateFormat.setSummary(shortDateFormat.format(dummyDate));
mTime24Pref.setSummary(DateFormat.getTimeFormat(gtActivity()).format(dummyDate));