将日期/时间(以毫秒为单位)格式化为Android中的本地字符串

时间:2013-03-15 09:07:42

标签: android time

我有一个以毫秒为单位指定的日期/时间,该日期/时间由以下方式检索:

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 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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将与您的设备日期匹配

答案 2 :(得分:0)

检查DateFormat。特别

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

这是example。看看它是否有帮助。

答案 3 :(得分:-2)

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

使用它
getResources().getString(R.string.format)

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

res/values-en/strings.xml
res/values-fr/strings.xml