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

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

 package day03;

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner; /**
* 根据用户输入的生日,计算该用户到今天为止
* 一共活了多少天?
* 要求用户输入的生日格式如:1992-08-02
*/
public class Test1 {
public static void main(String[] args) throws ParseException {
//获取用户输入
Scanner scanner = new Scanner(System.in);
System.out.println(
"请输入您的生日:yyyy-mm-dd"
);
String birthStr = scanner.nextLine(); //将用户输入的生日转换为Date对象
SimpleDateFormat sdf
= new SimpleDateFormat(
"yyyy-MM-dd"
);
Date birthDate = sdf.parse(birthStr);
// System.out.println(birthDate);
//今天的日期
Date now = new Date(); /*
* 今天的毫秒减去生日的毫秒差为:
* 经过的毫秒
*/
long time = now.getTime()-birthDate.getTime();
// System.out.println(time); //将经过的毫秒转换为天
time /= 1000*60*60*24; System.out.println("恭喜您,已经活了"+time+"天!请继续保持!");
}
}

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提供了一个可以获取指定时间分量所对应的值的方法

 package day03;

 import java.util.Calendar;

 /**
* Calendar提供了一个可以获取指定时间分量所
* 对应的值的方法:
* int get(int field)
* 参数为时间分量,无需记住具体取值,通常使用
* Calendar提供的常量表示。
* @author adminitartor
*
*/
public class Calendar_Get {
public static void main(String[] args) {
Calendar calendar
= Calendar.getInstance(); //获取年?
int year = calendar.get(Calendar.YEAR); //月从0开始,0表示1月。
int month = calendar.get(Calendar.MONTH)+1;
/*
* 和日相关的常量:
* DATE 月中的天 与DAY_OF_MONTH一致
* DAY_OF_MONTH 月中的天(几号)
* DAY_OF_WEEK 星期几
* DAY_OF_YEAR 年中的天
*
*/
int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(year+"-"+month+"-"+day); //获取时分秒
int h = calendar.get(Calendar.HOUR_OF_DAY);
int m = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);
System.out.println(h+":"+m+":"+s); //今天是今年的第多少天?
int doy = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("今天是今年的第"+doy+"天"); //今天是周几?
int dow = calendar.get(Calendar.DAY_OF_WEEK);
String[] data = new String[]{"日","一","二","三","四","五","六"}; System.out.println("今天是周"+data[dow-1]); /*
* 获取给定时间分量所允许的最大值
*/
int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println("今年共:"+days+"天"); days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("当月共:"+days+"天");
}
}

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

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

  1. Day03:日期操作 / 集合框架(上)

    日期操作 Java中的时间 · Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点: · 固定的时间点叫纪元(epoch),是U ...

  2. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

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

    一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.Link ...

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

    1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...

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

    Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...

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

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  7. java集合框架1

    1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...

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

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  9. java内部类、接口、集合框架、泛型、工具类、实现类

    .t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...

随机推荐

  1. hdfs的读写数据流

    hdfs的读:      首先客户端通过调用fileSystem对象中的open()函数读取他需要的的数据,fileSystem是DistributedFileSystem的一个实例, Distrib ...

  2. ImageView的scaleType详解

    ImageView的ScaleType详 1. 网上的误解 不得不说很失望,到网上搜索了几篇帖子,然后看到的都是相互复制粘贴,就算不是粘贴的,有几篇还是只是拿着自己的几个简单例子,然后做测试,这种以一 ...

  3. IBatis和Hibernate区别

    1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myB ...

  4. 无废话ExtJs 入门教程二十一[继承:Extend]

    无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...

  5. iOS- 制作U盘安装Mac OS X 系统

    需要: 1.下载Yomitate.app or Capitan.app 跳转到官网或者第三方. 2.准备一台Mac 电脑 3.准备一个8G U盘. 安装: 步骤1.将Yomitate.app 拖到应用 ...

  6. SVG实现导航动画

    效果图动画后 html <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> ...

  7. 关于tarjan算法的理解

    理解要点如下 理解LOW[i]数组的迭代过程.. low[u]=min(dfn[v],dfn[u],low[v]); 理解这个..如果有环..那么后代就可以更新祖先 那么low[v]就有用了.. 那么 ...

  8. [SDOI2013]方程

    ...最近考了一道数学题.是典型的隔板问题. P.S.最近八中oj上面没有系统地刷过题 题面可以直接转化为m个球分到n个箱子,每个箱子至少放1个,前n1个箱子的球数必须满足全部小于等于A[i],接着n ...

  9. PK淘宝BUY+,京东推出AR购物应用JD Dream

        今年双十一淘宝推出了虚拟现实VR购物"BUY+",用户可以在虚拟环境中选购商品.那作为竞争对手的京东将使出什么绝招呢?在近日上海举办的谷歌开发者大会上得到了答案.会上京东推 ...

  10. 解决Windows Server2008R2中导入Excel不能使用Jet 4.0

    操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0 原读取Excel文件代码为: string strConn = st ...