Java基础之一组有用的类——生成日期和时间(TryDateFormats)
2013-11-23 22:45
435 查看
控制台程序。
java.util包中含有相当多的类涉及日期和时间,包括Date类、Calendar类和GregorianCalendar类。
Date类对象其实定义了精确到毫秒的时刻,从1970年1月1日00:00:00时(GMT,格林威治时间)开始算起。因为是相对于特定的时刻,所以也对应着日期。
Calendar类是GregorianCalendar的基类,表示每个人都习惯使用的日/月/年日历,另外还提供了从Date对象中获取日、月和年信息的方法。
DateFormat类是抽象类,可用于创建Date对象的有意义的字符串表示。但这个类不在java.util包中,而在java.text包中定义。日期和时间有4中标准表示格式,它们用DateFormat类中定义的常量标识:SHORT/MEDIUM/LONG/FULL.
java.util.Locale对象标识了国家、区域或语言特有的信息。可以为特定的国家、语言、国家和语言以及国家和语言的变体定义Locale对象。
DateFormat类是抽象的,所以不能直接创建类的对象,但可以使用类中定义的静态方法来获得DateFormat对象,这些方法返回DateFormat类型的值。DateFormat对象封装了一个Locale和一个整数日期样式,这个样式有DateFormat类中定义的常量定义,即前面的SHORT、MEDIUM、LONG或FULL。
可以创建DateFormat实例,把Date对象格式化为时间、日期或日期和时间。创建各种DateFormat对象的静态方法有:返回时间格式化器的getTimeInstance()、返回日期格式化器的getDateInstance()以及返回格式化日期和时间的getDateTimeInstance()。
为指定的国家、样式和将要格式化的数据种类(日期、时间或两者)创建DateFormatd对象后,就准备好了从Date对象生成字符串。
只需要把Date对象传送给DateFormat对象的format()方法即可。例如:
Date today = new Date();
DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.US);
String formatted = fmt.format(today);
第一条语句创建了一个Date对象,表示执行Date构造函数时的时刻。
第二条语句创建了一个DateFormat对象,可以格式化Date对象封装的日期和时间。这个例子把日期和时间的格式化样式都指定为DateFormat类中的FULL常量,这样就为日期和时间提供了最详细的信息。第三个参数Locale.US决定了格式化应满足美国的要求。Locale类定义了用于其他主要国家和语言的常量。
第三条语句把fmt对象的format()方法应用于Date对象。
执行这些语句后,字符串变量formatted就包含了创建Date对象today时的完整日期和时间。
输出在嵌套的for循环中生成。外层循环迭代国家,内层循环是基于集合的for循环,为Styles枚举中的每个国家迭代样式。ordinal()方法返回值在枚举中的序号。使用序号把样式指定为getDateInstance()方法的第一个参数。
java.util包中含有相当多的类涉及日期和时间,包括Date类、Calendar类和GregorianCalendar类。
Date类对象其实定义了精确到毫秒的时刻,从1970年1月1日00:00:00时(GMT,格林威治时间)开始算起。因为是相对于特定的时刻,所以也对应着日期。
Calendar类是GregorianCalendar的基类,表示每个人都习惯使用的日/月/年日历,另外还提供了从Date对象中获取日、月和年信息的方法。
DateFormat类是抽象类,可用于创建Date对象的有意义的字符串表示。但这个类不在java.util包中,而在java.text包中定义。日期和时间有4中标准表示格式,它们用DateFormat类中定义的常量标识:SHORT/MEDIUM/LONG/FULL.
java.util.Locale对象标识了国家、区域或语言特有的信息。可以为特定的国家、语言、国家和语言以及国家和语言的变体定义Locale对象。
DateFormat类是抽象的,所以不能直接创建类的对象,但可以使用类中定义的静态方法来获得DateFormat对象,这些方法返回DateFormat类型的值。DateFormat对象封装了一个Locale和一个整数日期样式,这个样式有DateFormat类中定义的常量定义,即前面的SHORT、MEDIUM、LONG或FULL。
可以创建DateFormat实例,把Date对象格式化为时间、日期或日期和时间。创建各种DateFormat对象的静态方法有:返回时间格式化器的getTimeInstance()、返回日期格式化器的getDateInstance()以及返回格式化日期和时间的getDateTimeInstance()。
为指定的国家、样式和将要格式化的数据种类(日期、时间或两者)创建DateFormatd对象后,就准备好了从Date对象生成字符串。
只需要把Date对象传送给DateFormat对象的format()方法即可。例如:
Date today = new Date();
DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.US);
String formatted = fmt.format(today);
第一条语句创建了一个Date对象,表示执行Date构造函数时的时刻。
第二条语句创建了一个DateFormat对象,可以格式化Date对象封装的日期和时间。这个例子把日期和时间的格式化样式都指定为DateFormat类中的FULL常量,这样就为日期和时间提供了最详细的信息。第三个参数Locale.US决定了格式化应满足美国的要求。Locale类定义了用于其他主要国家和语言的常量。
第三条语句把fmt对象的format()方法应用于Date对象。
执行这些语句后,字符串变量formatted就包含了创建Date对象today时的完整日期和时间。
// Trying date formatting import java.util.Locale; import java.text.DateFormat; import java.util.Date; import static java.util.Locale.*; // Import names of constants import static java.text.DateFormat.*; // Import names of constants public class TryDateFormats { public enum Style {FULL, LONG, MEDIUM, SHORT} public static void main(String[] args) { Date today = new Date(); Locale[] locales = {US, UK, GERMANY, FRANCE}; // Output the date for each locale in four styles DateFormat fmt = null; for(Locale locale : locales) { System.out.println("\nThe Date for " + locale.getDisplayCountry() + ":"); for (Style style : Style.values()) { fmt = DateFormat.getDateInstance(style.ordinal(), locale); System.out.println( " In " + style + " is " + fmt.format(today)); } } } }
输出在嵌套的for循环中生成。外层循环迭代国家,内层循环是基于集合的for循环,为Styles枚举中的每个国家迭代样式。ordinal()方法返回值在枚举中的序号。使用序号把样式指定为getDateInstance()方法的第一个参数。
相关文章推荐
- Java基础之一组有用的类——使用公历日历(TryCalendar)
- java语言基础(63)——日期时间处理方法(Date DateFormat Calendar)
- Java基础之一组有用的类——使用比较器对数组排序(TrySortingWithComparator)
- Java基础之一组有用的类——使用二叉树搜索算法搜索某个作者(TryBinarySearch)
- JAVA基础学习之final关键字、遍历集合、日期类对象的使用、Math类对象的使用、Runtime类对象的使用、时间对象Date(两个日期相减)(5)
- Java 基础知识积累 时间Date那点事 未完待续.....
- Java 日期时间 Date类型,long类型,…
- JavaScript基础 使用new Date() 创建当前日期时间对象
- Java使用DateFormatter格式化日期时间的方法示例
- java.util.Date 与 java.sql.Date互转 及 字符串转换为日期时间格式
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- java基础-日期操作-SimpleDateFormat-Calendar
- java中常用的与时间有关的方法(string与date转化,出生日期转年龄,时间计算周次等)
- Java时间日期处理——Date和Calendar
- 非常有用的Java日期时间操作函数代码一览
- JAVA将十位时间戳格式化为日期Date类型
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题
- Java的基础知识9——日期和时间
- Java中的日期/时间类,Date、DateFormat、Calendar类
- JavaScript基础 使用new Date() 创建当前日期时间对象