【问题标题】:Android Date Time Format PatternAndroid 日期时间格式模式
【发布时间】:2015-12-17 20:16:12
【问题描述】:

我想知道是否有办法获取系统当前使用的格式。 截至目前,我正在使用 Joda Time 库并手动指定我希望日期所在的格式。

private final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(event_date, formatter);

这当然不是硬编码模式的最佳主意,那么有没有办法从系统中获取模式?

【问题讨论】:

标签: android date format jodatime


【解决方案1】:

你可以这样使用:

DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
String pattern       = ((SimpleDateFormat)formatter).toPattern();
String localPattern  = ((SimpleDateFormat)formatter).toLocalizedPattern();

【讨论】:

  • 尝试过这种方式,在我的情况下它返回 MMMM d, y 的模式,它不符合日期值实际存储的格式。如果您需要更多详细信息,我正在尝试扫描事件来自手机上的联系人,为此我需要在扫描时提供日期格式。
  • 它返回您的默认日期模式,因此 MMMM d, y 是默认模式。
【解决方案2】:

你可以这样做:

String datePattern;
String timePattern;
void loadDateTimePattern(Context context) {
        SimpleDateFormat dateFormat = (SimpleDateFormat) DateFormat.getDateFormat(context);
        SimpleDateFormat timeFormat = (SimpleDateFormat) DateFormat.getTimeFormat(context);
        datePattern = dateFormat.toPattern();
        timePattern = timeFormat.toPattern();
}

DateTimeFormatter timeFormatter = DateTimeFormat.forPattern(timePattern);
DateTimeFormatter timeFormatterFull = DateTimeFormat.forPattern(datePattern + ", " + timePattern);

【讨论】:

  • 在日期格式的情况下返回 M/d/y 但不符合日期实际所处的模式,因此不起作用。
猜你喜欢
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2013-04-23
  • 1970-01-01
相关资源
最近更新 更多