如何在 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));