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

时间: 2024-10-18 00:17:52

JAVASE02-Unit03: 日期操作 、 集合框架的相关文章

SQL Server 常用函数和日期操作

一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值. 在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. print ASCII('123456')    =>    49 print ASCII(123456)     =>    49 print ASCII('abc')         =>    97 2.CHAR() 将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII

黑马程序员_集合框架之(一)

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! 在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可以存储引用数据类型比如对象,集合框架更强大之处在于可以同时存储任意类型数据,这是数据无法做到的,另一方面,数组长度是固定的,但是实际生活中需求的容器大都是不确定的,这就需要一个可变长度的容器,而集合框架刚好弥补了数

java基础--集合框架的认识

一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.LinkedList实现类.hashSet实现类.hashMap实现类 Collection集合框架的父接口,该接口存储的是一组不唯一,无序的对象. Collection父接口下有两个子接口: List接口:存储的数据是 不唯一的.有序的 Set接口 : 存储的数据是惟一的.无序的 List接口下也有两个实

(1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合

1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存,此时对内存空间的消耗比较大. 为了节省内存空间希望对字符串内容本身直接进行更改,则需要使用java.lang.StringBuilder类或者java.lang.StringBuffer类. 其中StringBuffer类是从jdk1.0开始存在,是一个线程安全的可变字符序列,效率比较低 其中St

JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Collection; import day02.Point; /** * 操作集合元素相关方法 * @author adminitartor * */ public class Collection_Remove { public static void main(String[] args) { C

JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的文章,大多都是以罗列记忆点的形式书写的,没有谈论实现细节和逻辑原理.作为个人笔记无可厚非,但是并不利于他人学习.希望能通过这种比较“费劲”的讲解,帮助我自己.也帮助读者们更好地学习Java.掌握Java. 无论你跟我一样需要应聘,还是说在校学生学习Java基础,都对入门和进一步启发学习有所帮助.(关

日期操作常用方法集合

记录一些开发中遇到的日期操作. 1.获取距离今天指定日期间隔的日期 1 /** 2 * 获取距离今天指定日期间隔的日期,正数表示往未来的间隔日期,负数表示过去的间隔日期 3 * 返回形式为YYYY-MM-DD格式的日期 4 * @author mmq 2014年11月13日17:38:48 5 * @return String 6 */ 7 public static String getDateByDifferFromToday(int differ){ 8 Calendar c = Cale

Java集合框架总结(3)——TreeSet类的排序问题

Java集合框架总结(3)--TreeSet类的排序问题 TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默认采用自然排序. 1.自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序.(比较的前提:两个对象的类型相同). java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该

JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和ArrayList.HashSet.LinkedList等等.根据核心框架图,相信我们都已经对Collection这个JavaSE中最常用API之一有一个较为全面的认识. 这个学习过程,还可以推及到其他常用开源框架和公司项目的学习和熟悉上面.借助开发工具或说明文档,先是对项目整体有一个宏观的认识,再根