Java日期格式化

在Java中有两个用于格式化日期的类:DateFormat和SimpleDateFormat。

java.text.DateFormat类提供了各种方法,以以语言无关的方式格式化和解析日期和时间。DateFormat类是一个抽象类,它的父类是Format类,而java.text.SimpleDateFormat是java.text.DateFormat类的子类。

在Java中,将日期转换为字符串称为格式化,而将字符串转换为日期称为解析。换句话说,格式化意味着将日期转换为字符串,解析意味着将字符串转换为日期。

java.text.DateFormat方法

编号公共方法描述
1)final String format(Date date)将给定的Date对象转换为字符串。
2)Date parse(String source)throws ParseException将字符串转换为Date对象。
3)static final DateFormat getTimeInstance()返回具有默认格式化样式的时间格式化程序,默认区域设置。
4)static final DateFormat getTimeInstance(int style)返回具有给定格式化样式的时间格式化程序,默认区域设置。
5)static final DateFormat getTimeInstance(int style, Locale locale)返回具有给定格式化样式的时间格式化程序,给定区域设置。
6)static final DateFormat getDateInstance()返回具有默认格式化样式的日期格式化程序,默认区域设置。
7)static final DateFormat getDateInstance(int style)返回具有给定格式化样式的日期格式化程序,默认区域设置。
8)static final DateFormat getDateInstance(int style, Locale locale)返回具有给定格式化样式的日期格式化程序,给定区域设置。
9)static final DateFormat getDateTimeInstance()返回具有默认格式化样式的日期/时间格式化程序,默认区域设置。
10)static final DateFormat getDateTimeInstance(int dateStyle,int timeStyle)返回具有给定日期格式化样式和时间格式化样式的日期/时间格式化程序,默认区域设置。
11)static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale locale)返回具有给定日期格式化样式和时间格式化样式的日期/时间格式化程序,给定区域设置。
12)static final DateFormat getInstance()返回具有日期和时间的短格式化样式的日期/时间格式化程序。
13)static Locale[] getAvailableLocales()返回可用区域设置的数组。
14)Calendar getCalendar()返回此DateFormat实例的Calendar实例。
15)NumberFormat getNumberFormat()返回此DateFormat实例的NumberFormat实例。
16)TimeZone getTimeZone()返回此DateFormat实例的TimeZone实例。

Java DateFormat 示例:日期转换为字符串

让我们看一个使用 java.text.DateFormat 类在 Java 中格式化日期和时间的简单示例。

文件名: DateFormatExample.java

1. import java.text.DateFormat;
2. import java.util.Date;
3. 
4. public class DateFormatExample {
5.   public static void main(String[] args) {
6.     Date currentDate = new Date();
7.     System.out.println("当前日期:" + currentDate);
8.     String dateToStr = DateFormat.getInstance().format(currentDate);
9.     System.out.println("使用 getInstance() 方法进行日期格式化:" + dateToStr);
10.   }
11. }

输出:

当前日期:Tue Mar 31 14:37:23 IST 2015
使用 getInstance() 方法进行日期格式化:31/3/15 2:37 PM

让我们看一个完整的示例,使用 java.text.DateFormat 类在 Java 中格式化日期和时间。

文件名: DateFormatExample2.java

1. import java.text.DateFormat;
2. import java.util.Date;
3. 
4. public class DateFormatExample2 {
5.   public static void main(String[] args) {
6.     Date currentDate = new Date();
7.     System.out.println("当前日期:" + currentDate);
8. 
9.     String dateToStr = DateFormat.getInstance().format(currentDate);
10.     System.out.println("使用 getInstance() 方法进行日期格式化:" + dateToStr);
11. 
12.     dateToStr = DateFormat.getDateInstance().format(currentDate);
13.     System.out.println("使用 getDateInstance() 方法进行日期格式化:" + dateToStr);
14. 
15.     dateToStr = DateFormat.getTimeInstance().format(currentDate);
16.     System.out.println("使用 getTimeInstance() 方法进行日期格式化:" + dateToStr);
17. 
18.     dateToStr = DateFormat.getDateTimeInstance().format(currentDate);
19.     System.out.println("使用 getDateTimeInstance() 方法进行日期格式化:" + dateToStr);
20. 
21.     dateToStr = DateFormat.getTimeInstance(DateFormat.SHORT).format(currentDate);
22.     System.out.println("使用 getTimeInstance(DateFormat.SHORT) 方法进行日期格式化:" + dateToStr);
23. 
24.     dateToStr = DateFormat.getTimeInstance(DateFormat.MEDIUM).format(currentDate);
25.     System.out.println("使用 getTimeInstance(DateFormat.MEDIUM) 方法进行日期格式化:" + dateToStr);
26. 
27.     dateToStr = DateFormat.getTimeInstance(DateFormat.LONG).format(currentDate);
28.     System.out.println("使用 getTimeInstance(DateFormat.LONG) 方法进行日期格式化:" + dateToStr);
29. 
30.     dateToStr = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT).format(currentDate);
31.     System.out.println("使用 getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT) 方法进行日期格式化:" + dateToStr);
32.   }
33. }
当前日期:Tue Mar 31 14:37:23 IST 2015
使用 getInstance() 方法进行日期格式化:31/3/15 2:37 PM
使用 getDateInstance() 方法进行日期格式化:31 Mar, 2015
使用 getTimeInstance() 方法进行日期格式化:2:37:23 PM
使用 getDateTimeInstance() 方法进行日期格式化:31 Mar, 2015 2:37:23 PM
使用 getTimeInstance(DateFormat.SHORT) 方法进行日期格式化:2:37 PM
使用 getTimeInstance(DateFormat.MEDIUM) 方法进行日期格式化:2:37:23 PM
使用 getTimeInstance(DateFormat.LONG) 方法进行日期格式化:2:37:23 PM IST
使用 getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT) 方法进行日期格式化:31 March, 2015 2:37 PM

Java DateFormat 示例:字符串转换为日期

让我们看一个使用 java.text.DateFormat 类将字符串转换为日期的简单示例。

文件名: DateFormatExample3.java

1. import java.text.DateFormat;
2. import java.util.Date;
3. 
4. public class DateFormatExample3 {
5.   public static void main(String[] args) throws Exception {
6.     Date d = DateFormat.getDateInstance().parse("31 Mar, 2015");
7.     System.out.println("日期为:" + d);
8.   }
9. }

输出:

日期为:Tue Mar 31 00:00:00 IST 2015

Java DateFormat 示例:getTimeInstance(int style, Locale locale)

让我们看一下 getTimeInstance(int style, Locale locale) 方法的工作原理。

文件名: GetTimeInstanceExample.java

1. import java.util.Date;
2. import java.util.Locale;
3. import java.text.DateFormat;
4. 
5. public class GetTimeInstanceExample {
6.   public static void main(String[] args) throws Exception {
7.     Locale locale = Locale.FRENCH;
8.     Date d = new Date();
9.     DateFormat dFormat = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
10.     String str = dFormat.format(d);
11.     System.out.println(str);
12.   }
13. }

输出:

13:12

Java DateFormat 示例:getDateInstance(int style)

让我们看一下 getDateInstance(int style) 方法的工作原理。

文件名: GetDateInstanceExample.java

1. import java.util.Date;
2. import java.util.Locale;
3. import java.text.DateFormat;
4. 
5. public class GetDateInstanceExample {
6.   public static void main(String[] args) throws Exception {
7.     Date d = new Date();
8.     DateFormat dFormat = DateFormat.getDateInstance(DateFormat.SHORT);
9.     String str = dFormat.format(d);
10.     System.out.println(str);
11.   }
12. }

输出:

12/2/21

Java DateFormat 示例:getDateInstance(int style, Locale locale)

让我们看一下 getDateInstance(int style, Locale locale) 方法的工作原理。

文件名: GetDateInstanceExample1.java

1. import java.util.Date;
2. import java.util.Locale;
3. import java.text.DateFormat;
4. 
5. public class GetDateInstanceExample1 {
6.   public static void main(String[] args) throws Exception {
7.     Locale locale = Locale.FRENCH;
8.     Date d = new Date();
9.     DateFormat dFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
10.     String str = dFormat.format(d);
11.     System.out.println(str);
12.   }
13. }

输出:

02/12/2021

Java DateFormat 示例:getDateTimeInstance(int dateStyle, int timeStyle, Locale locale)

让我们看一下 getDateTimeInstance(int dateStyle, int timeStyle, Locale locale) 方法的工作原理。

文件名: GetDateTimeInstanceExample.java

1. import java.util.Date;
2. import java.util.Locale;
3. import java.text.DateFormat;
4. 
5. public class GetDateTimeInstanceExample {
6.   public static void main(String[] args) throws Exception {
7.     Locale locale = Locale.FRENCH;
8.     Date d = new Date();
9.     DateFormat dFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG, locale);
10.     String str = dFormat.format(d);
11.     System.out.println(str);
12.   }
13. }

输出:

02/12/2021 14:16:34 GMT

Java DateFormat 示例:getCalendar()

让我们看一下 getCalendar() 方法的工作原理。

文件名: GetCalendarExample.java

1. import java.util.Date;
2. import java.text.DateFormat;
3. 
4. public class GetCalendarExample {
5.   public static void main(String[] args) throws Exception {
6.     DateFormat dFormat = DateFormat.getDateTimeInstance();
7.     System.out.println(dFormat.getCalendar());
8.   }
9. }

输出:

java.util.GregorianCalendar[time = -886152493222, areFieldsSet = true, areAllFieldsSet = true, lenient = true, zone = sun.util.calendar.ZoneInfo[id = "GMT", offset=0, dstSavings = 0, useDaylight = false, transitions = 0, lastRule = null], firstDayOfWeek = 1, minimalDaysInFirstWeek = 1,ERA = 1, YEAR = 1941, MONTH = 11, WEEK_OF_YEAR = 49, WEEK_OF_MONTH = 1, DAY_OF_MONTH = 2, DAY_OF_YEAR = 336, DAY_OF_WEEK = 3, DAY_OF_WEEK_IN_MONTH = 1, AM_PM = 1, HOUR = 2, HOUR_OF_DAY = 14, MINUTE = 31, SECOND = 46, MILLISECOND = 778, ZONE_OFFSET = 0, DST_OFFSET = 0]

Java DateFormat 示例:getNumberFormat()

让我们看一下 getNumberFormat() 方法的工作原理。

文件名: GetNumberFormatExample.java

1. import java.text.NumberFormat;
2. import java.text.DateFormat;
3. 
4. public class DateFormatDemo {
5.   public static void main(String[] args) {
6.     DateFormat dFormat = DateFormat.getTimeInstance(DateFormat.SHORT);
7.     NumberFormat numFormat = dFormat.getNumberFormat();
8.     System.out.println("格式为:" + numFormat);
9.   }
10. }

输出:

格式为:java.text.DecimalFormat@3cd1a2f1

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想