【问题标题】:How do I abbreviate month to 3 characters?如何将月份缩写为 3 个字符?
【发布时间】:2019-05-07 14:41:37
【问题描述】:

我正在尝试将日期时间中的月份缩写为 3 个字符,例如如果月份是 May,则显示 May,但如果月份为 6 月,则应显示 Jun,而 september 应显示 sep,依此类推。

我尝试过“MMM”,但不起作用,它似乎返回了一个月的全文。

Calendar mDate = Calendar.getInstance();
SimpleDateFormat mDateFormat = new SimpleDateFormat("EEEE, MMM d, yyyy", Locale.US);
mMyStartDate.setText(mDateFormat.format(mDate.getTime()));

任何想法如何去做?另外,我不希望有任何其他改变。只是一个月,但到目前为止还没有运气。 提前致谢!

【问题讨论】:

  • 您必须使用SimpleDateFormatCalendar 吗?它们已被弃用……
  • @deHaar 还有什么我可以使用的吗?几乎对任何事物都开放
  • 是的,我建议熟悉java.time,我会尽快发布一个(非常简单的)答案...
  • 在非安卓环境下无法重现这个问题:ideone.com/FWz4Bs
  • 我使用 android.icu.text.SimpleDateFormat "developer.android.com/reference/android/icu/text/…" 可能是造成差异的原因,但无论哪种方式,由于 SimpleDateFormat 已被弃用,我非常乐意将 java.time 类与 DateTimeFormatter 一起使用。跨度>

标签: java android simpledateformat android-calendar android-date


【解决方案1】:

您可以为此使用java.time 包。有一个类 DateTimeFormatter 可以用来格式化时间对象,例如 LocalDateTimeLocalDateLocalTime

这是格式化日期的一个非常简单的示例:

public static void main(String args[]) {
    LocalDate today = LocalDate.now();
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMM dd yyyy");
    System.out.println(today.format(dtf));
}

输出(在我的语言环境中)是Mai 07 2019

看看内置格式here

【讨论】:

【解决方案2】:

你可以这样做:LocalDate myDate = LocalDate.now(); 然后你可以使用 date formattermyDate.format(new DateTimeFormatter.ofPattern("MMM dd yyyy")) 格式化它

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多