Java DateFormat

时间:2020-01-09 10:35:26  来源:igfitidea点击:

java.text.DateFormat类用于根据特定的Locale将日期格式化为字符串。不同的国家/地区对日期格式有不同的标准。在丹麦,日期使用" dd-mm-yyyy"格式书写,但在美国,日期使用" mm-dd-yyyy"格式书写日期。

创建一个DateFormat

我们可以使用DateFormat类的getDateInstance()和getTimeInstance()方法创建一个DateFormat。这是一个例子:

Locale locale = new Locale("da", "DK");

DateFormat dateFormat = DateFormat.getDateInstance(
                            DateFormat.DEFAULT, locale);

如我们所见,getDateInstance()方法有两个参数。第一个参数指示要使用的日期格式。第二个参数是要使用的"语言环境"。

可以在DateFormat类的以下常量中选择date格式参数:

DateFormat.DEFAULT
DateFormat.SHORT
DateFormat.MEDIUM
DateFormat.LONG
DateFormat.FULL

格式化日期最终如何查找所使用的每种日期格式取决于Locale。

格式化日期

格式化日期是通过format()方法完成的。这是一个例子:

Locale locale = new Locale("da", "DK");
DateFormat dateFormat = DateFormat.getDateInstance(
                            DateFormat.DEFAULT, locale);

String date = dateFormat.format(new Date());
System.out.println(date);

在nov上执行时,从此代码打印的输出。 2012年1月1日将是:

01-11-2012

如果使用UK UK Locale执行,则输出为:

Nov 1, 2012

格式化时间

为了只格式化时间而不是日期本身,我们需要DateFormat类的时间实例。我们可以使用getTimeInstance()方法创建这样的实例。这是一个例子:

Locale locale = new Locale("da", "DK");
DateFormat dateFormat = DateFormat.getTimeInstance(
                            DateFormat.DEFAULT, locale);

String date = dateFormat.format(new Date());
System.out.println(date);

该代码输出的输出看起来像这样:

12:43:37

格式化日期和时间

使用日期时间实例对包括日期和时间的日期进行格式化。我们可以使用getDateTimeInstance()方法创建这样的实例。这是一个例子:

Locale locale = new Locale("da", "DK");
//Locale locale = new Locale("en", "UK");
DateFormat dateFormat = DateFormat.getDateTimeInstance(
        DateFormat.DEFAULT,DateFormat.DEFAULT, locale);

String date = dateFormat.format(new Date());
System.out.println(date);

请注意,getDateTimeInstance()方法采用两个格式参数。一个用于日期,一个用于时间。

这是此代码的示例输出:

01-11-2012 13:07:08