zoukankan      html  css  js  c++  java
  • Java API —— DateFormat类

    1、DateFormat类概述        

      DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。        

      是抽象类,所以使用其子类SimpleDateFormat。   

    2、SimpleDateFormat构造方法       

      public SimpleDateFormat():将一个 Date 格式化为日期/时间字符串。(默认模式)       

      public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。   

    3、成员方法        

      public final String format(Date date):将一个 Date 格式化为日期/时间字符串。        

      public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。

    String和Date的相互转化理解
          
      举例1:
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    /*
     * Date     --     String(格式化)
     *         public final String format(Date date)
     *
     * String -- Date(解析)
     *         public Date parse(String source)
     *
     * DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。
     *
     * SimpleDateFormat的构造方法:
     *         SimpleDateFormat():默认模式
     *         SimpleDateFormat(String pattern):给定的模式
     *             这个模式字符串该如何写呢?
     *             通过查看API,我们就找到了对应的模式
     *             年 y
     *             月 M
     *             日 d
     *             时 H
     *             分 m
     *             秒 s
     *
     *             2014年12月12日 12:12:12
     */
    public class DateFormatDemo01 {
        public static void main(String[] args) throws ParseException {
            // Date -- String
            // 创建日期对象
            Date d = new Date();
            // 创建格式化对象
            // SimpleDateFormat sdf = new SimpleDateFormat();
            // 给定模式
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
            // public final String format(Date date)
            String s = sdf.format(d);
            System.out.println(s);
            //String -- Date
            String str = "2008-08-08 12:12:12";
            //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf2.parse(str);
            System.out.println(date);
        }
    }

      举例2:工具类

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class DateUtil {
        private DateUtil() {
        }
        /**
         * 这个方法的作用就是把日期转成一个字符串
         *
         * @param d
         *            被转换的日期对象
         * @param format
         *            传递过来的要被转换的格式
         * @return 格式化后的字符串
         */
        public static String dateToString(Date d, String format) {
            // SimpleDateFormat sdf = new SimpleDateFormat(format);
            // return sdf.format(d);
            return new SimpleDateFormat(format).format(d);
        }
        /**
         * 这个方法的作用就是把一个字符串解析成一个日期对象
         *
         * @param s
         *            被解析的字符串
         * @param format
         *            传递过来的要被转换的格式
         * @return 解析后的日期对象
         * @throws ParseException
         */
        public static Date stringToDate(String s, String format)
                throws ParseException {
            return new SimpleDateFormat(format).parse(s);
        }
    }

    测试类:

    import java.text.ParseException;
    import java.util.Date;
    public class DateFormatDemo02 {
        public static void main(String[] args) throws ParseException {
            Date d = new Date();
            //yyyy-MM-dd HH:mm:ss
            String s = DateUtil.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");
            System.out.println(s);
            String s2 = DateUtil.dateToString(d,"yyyy年MM月dd日");
            System.out.println(s2);
            String s3 = DateUtil.dateToString(d,"HH:mm:ss");
            System.out.println(s3);
            String str = "2015-12-6";
            Date dd = DateUtil.stringToDate(str,"yyyy-MM-dd");
            System.out.println(dd);
        }
    }
    输出结果:
    2015年12月06日 21:17:52
    2015年12月06日
    21:17:52
    Sun Dec 06 00:00:00 CST 2015
     
        举例3:算一下你来到这个世界多少天?
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    /*
     * 算一下你来到这个世界多少天?
     *
     * 分析:
     *         A:键盘录入你的出生的年月日
     *         B:把该字符串转换为一个日期
     *         C:通过该日期得到一个毫秒值
     *         D:获取当前时间的毫秒值
     *         E:用D-C得到一个毫秒值
     *         F:把E的毫秒值转换为年
     *             /1000/60/60/24
     */
    public class DateFormatDemo03 {
        public static void main(String[] args) throws ParseException {
            // 键盘录入你的出生的年月日
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你的出生年月日:");
            String line = sc.nextLine();
            // 把该字符串转换为一个日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date d = sdf.parse(line);
            // 通过该日期得到一个毫秒值
            long myTime = d.getTime();
            // 获取当前时间的毫秒值
            long cutTime = System.currentTimeMillis();
            // 用D-C得到一个毫秒值
            long time = cutTime - myTime;
            // 把E的毫秒值转换为年
            long day = time / 1000 / 60 / 60 / 24;
            System.out.println("您来到这个世界:" + day + "天。");
        }
    }
     
  • 相关阅读:
    自动化测试最新面试题和答案
    没有接口设计文档怎么做测试?
    测试岗/测试开发岗面经合集
    安卓测试常用的 ADB 命令
    面试问题集合
    springboot测试邮件发送
    swagger
    shiro 登录拦截和用户认证、资源授权
    SpringSecurity(安全框架)
    SpringBoot整合Mybatis框架
  • 原文地址:https://www.cnblogs.com/yangyquin/p/5024572.html
Copyright © 2011-2022 走看看