一、Date类

Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期

二、Calendar类

Calendar类可以将取得的时间精确到毫秒。但是,这个类本身是一个抽象类,如果要想使用一个抽象类,则必须依靠对象的多态性,通过子类进行父类的实例化操作,Calendar的子类是GregorianCalendar类。
package com.pb.demo3;

import java.util.Calendar;
import java.util.GregorianCalendar; /*
* 使用Calendar类显示当前时间,
* 使用get方法表示时间,日期的各个部分数字如:年,月,日
* 使用set方法设置日期字段,将当前时间设置为9月
* 使用add方法为给定的日历字段添加或者减去指定的时间量,在当前时间上加10天
* 使用GregorianCalendar的isLeapYear方法判断是否是闰年
*/
public class CalendarDemo { public static void main(String[] args) {
/*
* 将当前日期时间表是为年,月,日,时,分,秒
*/
Calendar calendar=Calendar.getInstance(); //日历对象
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1
int day=calendar.get(Calendar.DAY_OF_MONTH);
int hour=calendar.get(Calendar.HOUR_OF_DAY);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);
System.out.println("今天是: "+year+"年"+month+"月"+day+"日");
System.out.println("现在时: "+hour+"时"+minute+"分"+second+"秒");
/*将当前时间的月份设置为9 月*/
calendar.set(Calendar.MONTH, 8); //设置月份时-1
int year1=calendar.get(Calendar.YEAR);
int month1=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1
int day1=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("今天是: "+year1+"年"+month1+"月"+day1+"日");
//将当前时间加10天
calendar.add(Calendar.DAY_OF_MONTH, 10);
int year2=calendar.get(Calendar.YEAR);
int month2=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1
int day2=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("今天是: "+year2+"年"+month2+"月"+day2+"日");
/*判断 是否是闰年*/
GregorianCalendar gregorianCalendar=new GregorianCalendar();
boolean flag=gregorianCalendar.isLeapYear(gregorianCalendar.get(gregorianCalendar.YEAR));
if(flag==true){
System.out.println("今年是闰年!");
}else{
System.out.println("今年是不闰年!");
}
} }

三、SimpleDateFormat类

格式化模板
No.
标记
描述
1
y
年,年份是四位数字,所以需要使用“yyyy”表示年。
2
M
年中的月份,月份是两位数字,所以需要使用“MM”表示月。
3
d
月中的天数,天数是两位数字,所以需要使用“dd”表示日。
4
H
一天中的小时数(24小时),小时是两位数字,使用“HH”表示小时。
5
m
小时中的分钟数,分钟是两位数字,使用“mm”表示分钟。
6
s
分钟中的秒数,秒是两位数字,使用“ss”表示秒。
7
S
毫秒数,毫秒数字是三位数字,使用“SSS”表示毫秒。

四、例子

package com.pb.demo3;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateTest { public static void main(String[] args) {
//声明SimpleDateFormat对象并规定格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获得当前时间
Date date=new Date();
System.out.println("当前时间: "+sdf.format(date));
String newStr="2011-08-25 14:07:26";
try {
Date newdate=sdf.parse(newStr);
System.out.println("转换后的时间:"+newdate); } catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

Java从零开始学三十一(DATE和Calendar类)的更多相关文章

  1. Java从零开始学三十(String和StringBuffer类)

    一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作   二.Str ...

  2. Java从零开始学三十二(正则表达式)

    一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...

  3. Java从零开始学四十一(反射简述二)

    一.实例化Class类对象 实例化Class类对象的方法有三种: 第一种:通过forName()方法 第二种:类.class 第三种:对象.getClass() 二.Class类的常用方法 No. 方 ...

  4. Java从零开始学三十六(JAVA IO- 字符流)

    一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...

  5. Java从零开始学三十五(JAVA IO- 字节流)

    一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...

  6. Java从零开始学三十三(JAVA IO- File类)

    一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: ...

  7. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  8. Java从零开始学三十八(JAVA IO- 重定向IO)

    一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重 ...

  9. Java从零开始学三十七(JAVA IO- 二进制文件读写)

    一.简述 二.使用步骤 DataInputStream: 引入相关的类 构造数据输入流的对象(如:FileInputStream,BufferedWriter包装后读取文件等) 读取二进制文件的数据 ...

随机推荐

  1. spring---aop(10)---Spring AOP中AspectJ

    写在前面 在之前的文章中有写到,Spring在配置中,会存在大量的切面配置.然而在很多情况下,SpringAOP 所提供的切面类真的不是很够用,比如想拦截制定的注解方法,我们就必须扩展DefalutP ...

  2. git diff 打补丁

    [root@workstation2017 demo]# git diff old new >cc.diff[root@workstation2017 demo]# cat cc.diffdif ...

  3. MySQL运维开发相关的所有工具

    http://www.ruzuojun.com/topic/592.html   Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...

  4. C++STL源代码学习(之slist篇)

    ///stl_slist.h ///list为双向循环链表,slist为单向链表.某些操作效率更高 ///slist是SGI额外提供的单向链表,不属于C++标准 struct _Slist_node_ ...

  5. C# 去掉webapi返回json所带的转义字符

    反序列换报错: {"Error converting value \"{\"Result\":true,\"Code\":\"\& ...

  6. redux 个人整理

    序 本人工作之余的闲暇时间还是很充裕的.在完成经理安排的任务后,基本上都是在自学,主要是阅读各种技术文档.浏览博客.运行别人写的一些前端demo并观赏与赞叹.在ScorpionJay 同学的带领下,我 ...

  7. java基础学习总结——接口

    一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴 ...

  8. C#编程(一)

    第一个简单的C#程序 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  9. Android SDK目录及版本号区别

    来自:http://www.2cto.com/kf/201604/496917.html 今天又有人问Tools,Build-Tools,Platform-tools有什么区别,是干嘛的? 现在对SD ...

  10. Canvas控件最后一蛋——CanvasGroup

    Canvas Group可以用来控制一组不需要个别控制的UI元素的某些方面,CanvasGroup的属性会影响他所有children的GameObject 其中有四个选项: -Alpha:这个选项很多 ...