zoukankan      html  css  js  c++  java
  • Java基础之一组有用的类——生成日期和时间(TryDateFormats)

    控制台程序。

    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时的完整日期和时间。

     1 // Trying date formatting
     2 import java.util.Locale;
     3 import java.text.DateFormat;
     4 import java.util.Date;
     5 import static java.util.Locale.*;                                      // Import names of constants
     6 import static java.text.DateFormat.*;                                  // Import names of constants
     7 
     8 public class TryDateFormats {
     9   public enum Style {FULL, LONG, MEDIUM, SHORT}
    10 
    11   public static void main(String[] args) {
    12     Date today = new Date();
    13     Locale[] locales = {US, UK, GERMANY, FRANCE};
    14 
    15     // Output the date for each locale in four styles
    16     DateFormat fmt = null;
    17     for(Locale locale : locales) {
    18       System.out.println("
    The Date for " + locale.getDisplayCountry() + ":");
    19       for (Style style : Style.values()) {
    20         fmt = DateFormat.getDateInstance(style.ordinal(), locale);
    21         System.out.println( "  In " + style + " is " + fmt.format(today));
    22       }
    23     }
    24   }
    25 }

     输出在嵌套的for循环中生成。外层循环迭代国家,内层循环是基于集合的for循环,为Styles枚举中的每个国家迭代样式。ordinal()方法返回值在枚举中的序号。使用序号把样式指定为getDateInstance()方法的第一个参数。

  • 相关阅读:
    loaded some nib but the view outlet was not set
    指标评比
    IOS DEVELOP FOR DUMMIES
    软件测试题二
    javascript select
    DOM节点类型详解
    mysql操作
    UVA 10055
    solutions for 'No Suitable Driver Found For Jdbc'
    解决git中文乱码问题
  • 原文地址:https://www.cnblogs.com/mannixiang/p/3439551.html
Copyright © 2011-2022 走看看