• JAVASE02-Unit03: 日期操作 、 集合框架


        Unit03: 日期操作 、 集合框架    

    java.util.Date

    package day03;
    
    import java.util.Date;
    
    /**
     * java.util.Date
     * Date内部维护一个long值,该值表示自1970年元旦
     * 到该对象表示的时间点之间所经过的毫秒值
     * 由于Date存在时区,千年虫问题,所以在jdk1.1发布
     * 时大部分操作时间的方法全部被标注为过时方法,不再
     * 建议使用。
     * 现在Date仅用于表示一个具体的时间点。
     * @author adminitartor
     *
     */
    public class DateDemo {
        public static void main(String[] args) {
            //默认创建出来表示当前系统时间
            Date now = new Date();
            /*
             * Date重写了toString
             * 显示日期的格式对非英语地区不十分友好
             */
            System.out.println(now);
            /*
             * long getTime()
             * 获取当前Date内部维护的long值
             * 即:1970年元旦到当前对象表示的时间之间
             * 所经过的毫秒
             */
            long time = now.getTime();
            
            time += 1000*60*60*24;
            /*
             * void setTime(long time)
             * 将给定的long值设置到当前Date对象中
             * 使其表示这个时间
             */
            now.setTime(time);
            System.out.println(now);
        }
    }
    DateDemo.java

    java.text.SimpleDateFormat

    该类可以按照一个给定的日期格式字符串将Date

    package day03;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * java.text.SimpleDateFormat
     * 该类可以按照一个给定的日期格式字符串将Date
     * 与String之间相互转换
     * @author adminitartor
     *
     */
    public class SimpleDateFormat_Format {
        public static void main(String[] args) {
            Date now = new Date();
            System.out.println(now);
            
            /*
             * 2016-12-26 10:20:55
             * yyyy-MM-dd HH:mm:ss
             */
            SimpleDateFormat sdf
                = new SimpleDateFormat(
                    "yyyy-MM-dd HH:mm:ss"
                );
            /*
             * Date->String
             * String format(Date date)
             * 将给定的Date按照指定的日期格式转换
             * 为字符串
             */
            String str = sdf.format(now);
            System.out.println(str);
        }
    }
    SimpleDateFormat_Format.java

    java.text.SimpleDateFormat

    将字符串按照指定的日期格式解析为Date对象

    package day03;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 将字符串按照指定的日期格式解析为Date对象
     * @author adminitartor
     *
     */
    public class SimpleDateFormat_Parse {
        public static void main(String[] args) throws ParseException {
            String str = "2008-08-08 20:08:08";
            
            SimpleDateFormat sdf
                = new SimpleDateFormat(
                    "yyyy-MM-dd HH:mm:ss"    
                );
            /*
             * String->Date
             * Date parse(String str)
             * 将给定的字符串按照指定的日期格式解析
             * 为Date,使其表示该日期  
             */
            Date date = sdf.parse(str);
            
            System.out.println(date);
            
        }
    }
    SimpleDateFormat_Parse.java

    根据用户输入的生日,计算该用户到今天为止, 一共活了多少天?

     1 package day03;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Date;
     6 import java.util.Scanner;
     7 
     8 /**
     9  * 根据用户输入的生日,计算该用户到今天为止
    10  * 一共活了多少天?
    11  * 要求用户输入的生日格式如:1992-08-02
    12  */
    13 public class Test1 {
    14     public static void main(String[] args) throws ParseException {
    15         //获取用户输入
    16         Scanner scanner = new Scanner(System.in);
    17         System.out.println(
    18             "请输入您的生日:yyyy-mm-dd"
    19         );
    20         String birthStr = scanner.nextLine();
    21         
    22         //将用户输入的生日转换为Date对象
    23         SimpleDateFormat sdf
    24             = new SimpleDateFormat(
    25                 "yyyy-MM-dd"    
    26             );
    27         Date birthDate = sdf.parse(birthStr);
    28 //        System.out.println(birthDate);
    29         //今天的日期
    30         Date now = new Date();
    31         
    32         /*
    33          * 今天的毫秒减去生日的毫秒差为:
    34          * 经过的毫秒
    35          */
    36         long time = now.getTime()-birthDate.getTime();
    37 //        System.out.println(time);
    38         
    39         //将经过的毫秒转换为天
    40         time /= 1000*60*60*24;
    41     
    42         System.out.println("恭喜您,已经活了"+time+"天!请继续保持!");
    43     }
    44 }
    Test.java

    java.util.Calendar

    日历类,是一个抽象类,规定了操作时间的相关方法

    package day03;
    
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * java.util.Calendar
     * 日历类,是一个抽象类,规定了操作时间的相关方法
     * 
     * 常用实现类:阳历历法GregorianCalendar
     * 
     * Calendar有一个静态方法可以根据所在地区获取
     * 相应的实现类。
     * @author adminitartor
     *
     */
    public class Calendar_GetInstance {
        public static void main(String[] args) {
            /*
             * static Calendar getInstance()
             * 该静态方法会根据系统所在地区获取一个适用
             * 的实现类,大部分是阳历类。
             * 并且默认表示当前系统时间。
             */
            Calendar calendar = Calendar.getInstance();
            /*
             * Calendar的实现类也重写toString了
             * 只是不能直观看出日期
             */
            System.out.println(calendar);
            /*
             * Calendar -> Date
             * Date getTime()
             * 该方法可以返回一个Date类型实例,该实例
             * 表示的日期就是当前Calendar所表示的日期
             */
            Date date = calendar.getTime();
            System.out.println(date);
            
            
            /*
             * Date -> Calenar
             * void setTime(Date date)
             * 该方法可是使当前Calendar表示给定的
             * Date所表示的日期
             */
            calendar.setTime(date);
            
            
            
        }
    }
    Calendar_GetInstance.java

    Calendar提供了一个可以获取指定时间分量所对应的值的方法

     1 package day03;
     2 
     3 import java.util.Calendar;
     4 
     5 /**
     6  * Calendar提供了一个可以获取指定时间分量所
     7  * 对应的值的方法:
     8  * int get(int field)
     9  * 参数为时间分量,无需记住具体取值,通常使用
    10  * Calendar提供的常量表示。
    11  * @author adminitartor
    12  *
    13  */
    14 public class Calendar_Get {
    15     public static void main(String[] args) {
    16         Calendar calendar 
    17             = Calendar.getInstance();
    18         
    19         //获取年?
    20         int year = calendar.get(Calendar.YEAR);
    21         
    22         //月从0开始,0表示1月。
    23         int month = calendar.get(Calendar.MONTH)+1;
    24         /*
    25          * 和日相关的常量:
    26          * DATE 月中的天 与DAY_OF_MONTH一致
    27          * DAY_OF_MONTH 月中的天(几号)
    28          * DAY_OF_WEEK 星期几
    29          * DAY_OF_YEAR 年中的天
    30          * 
    31          */
    32         int day = calendar.get(Calendar.DAY_OF_MONTH);
    33         
    34         System.out.println(year+"-"+month+"-"+day);
    35         
    36         //获取时分秒
    37         int h = calendar.get(Calendar.HOUR_OF_DAY);
    38         int m = calendar.get(Calendar.MINUTE);
    39         int s = calendar.get(Calendar.SECOND);
    40         System.out.println(h+":"+m+":"+s);
    41         
    42         //今天是今年的第多少天?
    43         int doy = calendar.get(Calendar.DAY_OF_YEAR);
    44         System.out.println("今天是今年的第"+doy+"天");
    45         
    46         //今天是周几?
    47         int dow = calendar.get(Calendar.DAY_OF_WEEK);
    48         String[] data = new String[]{"日","一","二","三","四","五","六"};
    49         
    50         System.out.println("今天是周"+data[dow-1]);
    51     
    52         /*
    53          * 获取给定时间分量所允许的最大值
    54          */
    55         int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
    56         System.out.println("今年共:"+days+"天");
    57         
    58         days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    59         System.out.println("当月共:"+days+"天");
    60     }
    61 }
    Calendar_Get.java

    Calendar允许对指定时间分量设置给定的值

    package day03;
    
    import java.util.Calendar;
    
    /**
     * Calendar允许对指定时间分量设置给定的值
     * @author adminitartor
     *
     */
    public class Calendar_Set {
        public static void main(String[] args) {
            Calendar calendar 
                = Calendar.getInstance();
            
            /*
             * 2008-08-08 20:08:08
             * 
             * void set(int filed,int value)
             * 针对给定的时间分量设置指定的值
             * 
             */
            //设置年
            calendar.set(Calendar.YEAR, 2008);
            System.out.println(calendar.getTime());
            
    //        calendar.set(Calendar.MONTH, 7);
            calendar.set(Calendar.MONTH, Calendar.AUGUST);
            
            calendar.set(Calendar.DAY_OF_MONTH, 8);
            
            calendar.set(Calendar.HOUR_OF_DAY, 20);
            
            calendar.set(Calendar.MINUTE, 8);
            
            calendar.set(Calendar.SECOND, 8);
            
            System.out.println(calendar.getTime());
            //设置周几
            calendar.set(Calendar.DAY_OF_WEEK, 2);
            System.out.println(calendar.getTime());
            //超范围后会进位
            calendar.set(Calendar.DAY_OF_MONTH, 32);
            System.out.println(calendar.getTime());
        }
    }
    Calendar_Set.java

    Calendar提供了用于计算日期的方法

    package day03;
    
    import java.util.Calendar;
    
    /**
     * Calendar提供了用于计算日期的方法:
     * void add(int field,int value)
     * 对指定时间分量加上给定的值,若给定的值是负数,
     * 则是减去。
     * @author adminitartor
     *
     */
    public class Calendar_Add {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            /*
             * 三个月零25天以后是哪天?
             */
            //加上3个月
            calendar.add(Calendar.MONTH, 3);
            System.out.println(calendar.getTime());
            
            calendar.add(Calendar.DAY_OF_YEAR, 25);
            System.out.println(calendar.getTime());
            
            //设置为当周的周一
            calendar.set(Calendar.DAY_OF_WEEK, 2);
            System.out.println(calendar.getTime());
        }
    }
    Calendar_Add.java

    java.util.Collection

    集合,用于存储一组元素,与数组很像

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    /**
     * java.util.Collection
     * 集合,用于存储一组元素,与数组很像。
     * 集合规定了很多便于操作集合元素的方法。
     * 
     * Collection有两个常用的子接口:
     * List:可重复集
     * Set:不可重复集
     * 重复与否指的是集合内部的元素,而元素是否重复取决
     * 与元素间equals比较的结果。
     * 
     * @author adminitartor
     *
     */
    public class Collection_Methods {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            /*
             * boolean add(E e)
             * 向当前集合中添加给定元素,若成功添加
             * 则返回true
             */
            c.add("one");
            c.add("two");
            c.add("three");
            c.add("four");
            System.out.println(c);
            
            /*
             * int size()
             * 获取集合的元素个数
             */
            System.out.println("size:"+c.size());
            
            /*
             * boolean isEmpty()
             * 判断当前集合是否不含有元素
             */
            System.out.println("isEmpty:"+c.isEmpty());
            
            /*
             * void clear()
             * 清空集合元素
             */
            c.clear();
            System.out.println("集合已清空!");
            System.out.println("size:"+c.size());
            System.out.println("isEmpty:"+c.isEmpty());
        }
    }
    Collection_Methods.java

    boolean contains(E e)

    判断当前集合是否包含给定元素

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    import day02.Point;
    
    /**
     * boolean contains(E e)
     * 判断当前集合是否包含给定元素,判定标准是看给定
     * 元素与集合现有元素是否有equals比较为true的
     * @author adminitartor
     *
     */
    public class Collection_Contains {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            c.add(new Point(1,2));
            c.add(new Point(2,3));
            c.add(new Point(3,4));
            System.out.println(c);
            
            Point p = new Point(1,2);
    //        c.add(p);
            
            boolean contains = c.contains(p);
            System.out.println("包含:"+contains);
        }
    }
    Collection_Contains.java

    集合存放的是元素的引用

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    import day02.Point;
    
    /**
     * 集合存放的是元素的引用
     * @author adminitartor
     *
     */
    public class CollectionDemo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            
            Point p = new Point(1,2);
            
            c.add(p);
            
            System.out.println("p:"+p);//(1,2)
            System.out.println("c:"+c);//[(1,2)]
            
            p.setX(2);
            
            System.out.println("p:"+p);//(2,2)
            System.out.println("c:"+c);//[(2,2)]
            
            
        }
    }
    CollectionDemo.java
  • 相关阅读:
    Tomcat 配置和springframework MVC配置简介
    Java监控工具、调优、调试辅助函数
    发布一个 Linux 下的 C++ 多线程库
    《程序中的日期与时间》第一章 日期计算
    《多线程服务器的适用场合》例释与答疑
    Muduo 网络编程示例之零:前言
    muduo 与 boost asio 吞吐量对比
    Muduo 网络编程示例之二:Boost.Asio 的聊天服务器
    计算机图书赠送
    muduo 与 libevent2 吞吐量对比
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6224190.html
Copyright © 2020-2023  润新知