2

我不想承认这一点,但我无法理解基本的日期格式。我知道我只是想多了,但我看到的文档完全想念我。例如,我要做的只是显示格式为“2013 年 2 月 20 日,星期三”的当前日期。到目前为止,我所拥有的是:

TextView textView = (TextView) findViewById(R.id.currentDate);
String now = DateFormat.getDateInstance().format(new Date());
textView.setText(now); 

这会产生类似"2013-2-20"的东西,这是很好的第一步,但不是我想要的。在查看文档时我很困惑,因为DateFormat文档都说使用整数来表示SHORTMEDIUMLONGDEFAULT. 什么?确切地说,我会把这个论点放在哪里?以及如何 / 哪个整数表示SHORTvs LONG?这些都没有任何意义,我觉得自己像个彻头彻尾的白痴,因为我知道这很明显。我是从多年使用 PHP 的日期格式开始的,我确信我的旧习惯完全阻止了我看到它的简单性。

4

2 回答 2

3

您可以将属性(SHORT、LONG 等)放在DateFormat.getDateInstance();这样的内部:

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

SHORT 完全是数字,例如 12.13.52 或 3:30pm

MEDIUM 较长,如 1952 年 1 月 12 日

LONG 更长,例如 1952 年 1 月 12 日或下午 3:30:32

FULL 非常完整,例如 1952 年 4 月 12 日星期二或太平洋标准时间下午 3:30:42。

可以在此处找到此信息。

于 2013-02-20T21:48:02.517 回答
1

如果您习惯于传统语言,那么您缺少的关键概念是 Java 中的日期/时间处理被严重破坏。不只是一次,而是两次,在破碎的两个不同的化身中。加上一些事后创可贴助手类,例如 DateUtils。您需要接受的关键见解是:与 Java 中的日期和时间无关是非常简单的。

尝试改用 SimpleDateFormat。不,它实际上并不简单。但是默认设置会产生一个可行的本地化日期/时间(如果不是一个漂亮的日期/时间)。

    DateFormat format = SimpleDateFormat.getDateTimeInstance(),

while 产生:“Dec 31, 1969 4:00:00 PM”(或本地化等效项)。

于 2013-02-20T22:08:22.350 回答