Java从零开始学三十一(DATE和Calendar类)

一、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();
        }

    }

}
时间: 2024-12-27 22:02:17

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

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

一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作 二.StringBuffer类的常用方法 No. 方法定义 类型 描述 1 public StringBuffer() 构造 StringBuffer的构造方法 2 public StringBuffer append(char c) 方法 在StringBuffer中提供了大量的追加操作(与String中使用“

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

一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完成 二.Pattern.Matcher类 如果要想在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义.Pattern类的主要作用是进行正则规范的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范. 常用正则规则 N

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

一.实例化Class类对象 实例化Class类对象的方法有三种: 第一种:通过forName()方法 第二种:类.class 第三种:对象.getClass() 二.Class类的常用方法 No. 方法 类型 描述 1 public static Class<?> forName(String className) throws ClassNotFoundException 普通 传入完整的“包.类”名称实例化Class对象 2 public Constructor[] getConstruc

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

一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test.txt文件内容 abcdefg package com.pb.io; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOExcept

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

一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的满时,再把缓冲区的内容写到字符输出流中 二.对文本文件的读写 2.1.字符输入流 2.2.字符输出流 2.3.综合使用 package com.pb.io.buffered; import java.io.BufferedReader; import java.io.BufferedWriter;

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

一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: public File(String pathname) ->实例化File类的时候,必须设置好路径. 二.File类中的主要方法和常量 No. 方法或常量 类型 描述 1 public static final String pathSeparator 常量 表示路径的分隔符(windows是:“

Java从零开始学二十一(集合List接口)

一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collection<E> 二.List接口的扩展方法 No. 方法 类型 描述 1 public void add(int index, E element) 普通 在指定位置增加元素 2 public boolean addAll(int index, Collection<? extends E>

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

一.简述 二.使用步骤 DataInputStream: 引入相关的类 构造数据输入流的对象(如:FileInputStream,BufferedWriter包装后读取文件等) 读取二进制文件的数据 关闭数据输入流 DataOutputStream: 引入相关的类 构造数据输出流的对象(如:FileOputStream,BufferedWriter包装后写入文件等) 写入二进制文件的数据 关闭数据输入流 三.使用 package com.pb.data; import java.io.Buffe

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

一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重定向方法 方法 说明 static void setErr(PrintStream errr) 重定向标准错误输出流 static void setIn(InputStream in ) 重定向标准输入流 static void setOut(PrintStream out) 重定向歀输出流 三.例