【问题标题】:DateFormat Android - properly?DateFormat Android - 正确吗?
【发布时间】:2013-02-03 10:51:18
【问题描述】:

我想知道如何在 Android 中正确显示日期。我的意思是日期格式,它适合下载应用程序的特定区域。 我正在做的 atm 是:

DateFormat formatter = DateFormat.getDateTimeInstance();
String[] dateParts = date.split(DATE_DELIMITER);
Date temp = new Date(Integer.valueOf(dateParts[4])-1900, Integer.valueOf(dateParts[3]),
            Integer.valueOf(dateParts[2]), Integer.valueOf(dateParts[0]),
            Integer.valueOf(dateParts[1]));
return formatter.format(temp);

所以...这有以下问题:Java.util.Date 被标记为已弃用,它也会显示秒数,尽管我不希望这样。

是否有任何“美丽”的解决方案?如果你能告诉我,我会很高兴:)

【问题讨论】:

  • 对所有答案:我不想要的是“日期和月份”的固定位置,因为不同的地区处理不同。例如。欧洲习惯DD.MM。 UK 或 US 有时用于 MM/DD 等。有没有办法做到这一点?

标签: java android date string-formatting


【解决方案1】:

编辑

要为当前区域设置格式化日期,请使用静态工厂方法之一:

String formattedString = DateFormat.getDateInstance().format(yourDate);

这将根据设备当前区域设置进行格式化,即在 android 设置中配置的区域。

More Info


解决方案是使用SimpleDateFormat

public static vod FormatDate(Date yourDate) {

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

    return sdf.format( yourDate ));

}

相关:Android SimpleDateFormat, how to use it?

【讨论】:

    【解决方案2】:

    使用设备当前区域设置的 Android DateFormat

    在 android 中,您可以在格式化日期对象时使用设备的区域设置:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss", Locale.getDefault())
    String formatedText = sdf.format(new Date());
    

    编辑

    要使用确切的系统日期格式,请使用:

            DateFormat.getDateFormat(mContext).format(new Date());
    

    【讨论】:

    • 这不会仍然显示 yyyy-mm-dd 中的日期吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多