5

我有一个以毫秒为单位的日期/时间,通过以下方式检索:

Calendar.getInstance().getTimeInMillis();

我想将其格式化为一个字符串,该字符串以设备上的本地格式表示日期和时间。例如:

US:      12/15/2013 10:30 pm
Germany: 15.12.2013 22:30

我不应该指定格式,例如:

SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, yyyy h:mm a");

是否有处理本地格式的 API?

4

4 回答 4

0

看到这个代码

    String myformat = android.provider.Settings.System.getString(getContentResolver(),     android.provider.Settings.System.DATE_FORMAT);
    DateFormat dateFormat;
    if (TextUtils.isEmpty(myformat)) {
      dateFormat = android.text.format.DateFormat.getMediumDateFormat(getApplicationContext());
    } else {
      dateFormat = new SimpleDateFormat(format);
    }

所以 dateformat 将与您的设备日期匹配

于 2013-03-15T09:20:48.017 回答
0

检查日期格式。特别

public static final DateFormat getDateInstance(int style,
                                               Locale aLocale)

这是一个例子。看看能不能帮上忙。

于 2013-03-15T09:24:41.187 回答
0

我想这就是你要找的东西:

Locale locale = Locale.getDefault();    
Date today = new Date();
SimpleDateFormat.SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG, locale).format(today));

您需要在其中检查locale并相应地传递其值。

于 2013-03-15T09:13:13.493 回答
-2

作为一个选项,您可以将格式字符串存储在字符串资源中,以使其通过

getResources().getString(R.string.format)

然后只需将您需要的字符串放入语言环境文件夹,例如:

res/values-en/strings.xml
res/values-fr/strings.xml
于 2013-03-15T09:15:37.683 回答