• Java 基本日期类使用——格式化(二)


      Java日期格式化主要有以下几种方式:java.text.DateFormat以及其子类java.text.SimpleDateFormat;

      DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。(摘录API文档)

      1.格式化当前语言环境下的日期,可使用下面的静态工厂方法:

      示例1:

         Date date = new Date();
            String local = DateFormat.getInstance().format(date);
            System.out.println("格式化当前语言环境日期:" + local);
            String localDate = DateFormat.getDateInstance().format(date);
            System.out.println("格式化当前语言环境日期(没有具体到几点):" + localDate);
            String localDateTime = DateFormat.getDateTimeInstance().format(date);
            System.out.println("格式化当前语言环境日期(具体到几点):" + localDateTime);

      结果1:

    格式化当前语言环境日期:14-10-16 下午3:20
    格式化当前语言环境日期(默认格式):2014-10-16
    格式化当前语言环境日期(默认格式):2014-10-16 15:20:12

      2.格式化不同语言环境的日期,可在 getDateInstance(int style, Locale aLocale) 、getTimeInstance(int style, int timeStyle, Locale aLocale) 的调用中指定语言环境,style - 给定的格式化风格。例如,SHORT 用于 US 语言环境中的 "M/d/yy"、timeStyle 给定的时间格式化风格、Locale - 给定的语言环境。

      style:主要有:SHORT 完全为数字、MEDIUM 较长、LONG 更长、FULL 是完全指定等参数,其都是static常量。

      示例2:

         //指定语言环境为中国            
            String chinaDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA).format(date);
         String chinaFullDate = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA).format(date);
    //指定语言环境为英语国家 String englishDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.ENGLISH).format(date); //指定语言环境为日本 String japanDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.JAPAN).format(date); System.out.println( chinaDate + " " + chinaFullDate + " " + englishDate + " " + japanDate);

      结果2:

    2014年10月16日   2014年10月16日 星期四    October 16, 2014    2014/10/16

      示例3:

    //指定语言环境为中国            
            String chinaDate = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.LONG, Locale.CHINESE).format(date);
            //指定语言环境为英语国家            
            String englishDate = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM, Locale.ENGLISH).format(date);
            //指定语言环境为日本        
            String japanDate = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.JAPAN).format(date);
            System.out.println( chinaDate + "
    " + englishDate + "
    " + japanDate);

      结果3:

    2014年10月16日 星期四 下午03时31分05秒
    Thursday, October 16, 2014 3:31:05 PM
    2014/10/16 15:31:05 CST

      3.简单的将字符串转化为日期。parse(String source)从给定字符串的开始解析文本,以生成一个日期。

      示例4:

            DateFormat dateFormat = DateFormat.getInstance();
            Date date1 = dateFormat.parse("14-10-13 下午2:32");
            System.out.println(date1);            

      结果4:

    Mon Oct 13 14:32:00 CST 2014

      4.利用SimpleDateFormat以及parse方法实现日期格式化、字符串转为日期对象

      示例5:

                //创建日期
                Date date = new Date();
                //创建不同的日期格式
                DateFormat df1 = DateFormat.getInstance();
                DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
                //产生一个指定国家指定长度的日期格式,长度不同,显示的日期完整性也不同
                DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);     
                DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
                DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US);
                DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
                DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
                //将日期按照不同格式进行输出
                System.out.println("-------日期按照不同格式转换为字符串------");
                System.out.println("按Java默认的日期格式,默认的区域:				" + df1.format(date));
                System.out.println("按指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :	" + df2.format(date));
                System.out.println("按日期的FULL模式,区域设置为中文:				" + df3.format(date));
                System.out.println("按指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文:	" + df4.format(date));
                System.out.println("按指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国:		" + df5.format(date));
                System.out.println("按指定格式 yyyy-MM-dd ,系统默认区域 :			" + df6.format(date));
                //将符合该格式的字符串转换为日期,若格式不相配,则会出错,具体格式参照SimpleDateFormat构造器中的pattern参数
                Date date1 = df1.parse("14-10-16 下午2:32");
                Date date2 = df2.parse("2014-10-16 02:51:07 星期五");
                Date date3 = df3.parse("2014年10月16日 星期五");
                Date date4 = df4.parse("2014年10月16日 02时51分18秒 星期五");
                Date date5 = df5.parse("2014-10-16 02:51:18 Friday");
                Date date6 = df6.parse("2014-10-16");
                System.out.println("-------字符串转换为日期对象------");
                System.out.println(date1);
                System.out.println(date2);
                System.out.println(date3);
                System.out.println(date4);
                System.out.println(date5);
                System.out.println(date6);

      结果5:

    -------日期按照不同格式转换为字符串------
    按Java默认的日期格式,默认的区域:                14-10-16 下午3:45
    按指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :    2014-10-16 03:45:11 星期四
    按日期的FULL模式,区域设置为中文:                2014年10月16日 星期四
    按指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文:    2014年10月16日 03时45分11秒 星期四
    按指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国:        2014-10-16 03:45:11 Thursday
    按指定格式 yyyy-MM-dd ,系统默认区域 :            2014-10-16
    -------字符串转换为日期对象------
    Thu Oct 16 14:32:00 CST 2014
    Thu Oct 16 02:51:07 CST 2014
    Thu Oct 16 00:00:00 CST 2014
    Thu Oct 16 02:51:18 CST 2014
    Thu Oct 16 02:51:18 CST 2014
    Thu Oct 16 00:00:00 CST 2014

      备注:日期格式化pattern参数可参见api文档SimpleDateFormat,如下:

      

  • 相关阅读:
    UVA10891
    UVA10453
    UVA 10201
    UVA10154
    UVA11137
    UVA10617
    UVA10271
    UVA10739
    UVA10306
    节流防抖
  • 原文地址:https://www.cnblogs.com/Richard-xie/p/4028805.html
Copyright © 2020-2023  润新知