Java 时间日期类基本用法

                  Date

SimpleDateFormat

Calendar

GregorianCalenda

Date

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象:

主要方法:

public class DateDemo {
    public static void main(String[] args) {
        // 初始化 Date 对象
        Date d = new Date();
        // 使用 toString() 函数显示日期时间
        System.out.println(d.toString());
        Date d1=new Date(1998,12,12);//自行设置 已被舍弃 现有Calendar类可以设置
        System.out.println(d1.toString());
        Date d2=new Date(1000*60*60*24);//从 1970 年 1 月 1 日起的毫秒数 经过一天
        System.out.println(d2.toString());
    }
}

SimpleDateFormat

SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行

package Demo;
import java.text.SimpleDateFormat;
import java.util.*;

public class DateDemo {
    public static void main(String[] args) {
        // 初始化 Date 对象
        Date d = new Date();
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        System.out.println("当前时间为: " + ft.format(d));
    }
}

不同格式举例

 

package Demo;

import java.text.SimpleDateFormat;
import java.util.*;

public class DateDemo {
    public static void main(String[] args) {
      Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
        System.out.println(sdf.format(date));
        SimpleDateFormat sdf1=new SimpleDateFormat("EEE,MMM d, ''yy ");
        System.out.println(sdf1.format(date));
        System.out.println(new SimpleDateFormat("h:mm a").format(date));
        System.out.println(new SimpleDateFormat("hh 'o' 'clock' a, zzzz").format(date));
        System.out.println(new SimpleDateFormat("K:mm a, z").format(date));
        System.out.println(new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa").format(date));
        System.out.println(new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(date));
        System.out.println(new SimpleDateFormat("yyMMddHHmmssZ").format(date));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(date));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").format(date));
        System.out.println(new SimpleDateFormat("YYYY-'W'ww-u").format(date));




    }
}

 

sleep

sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。

import java.util.*;

public class DateDemo {
    public static void main(String[] args) throws InterruptedException {
        System.out.println(new Date());
        Thread.sleep(1000*5);//休眠五秒
        System.out.println(new Date());

    }
}

 

Calendar

Calendar类可以自定义日期,是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

Calendar c = Calendar.getInstance();//默认是当前日期
package Demo;

import java.util.*;

public class DateDemo {
    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();//获得当前时间
        System.out.println(c.getTime());
        int y=c.get(Calendar.YEAR);//获得年
        int m=c.get(Calendar.MONTH);//月 这个月与实际的月差一月实际上已经12月 格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。
        int d=c.get(Calendar.DATE);//日
        int h=c.get(Calendar.HOUR_OF_DAY);//小时
        int min = c.get(Calendar.MINUTE);//分钟
        int sec=c.get(Calendar.SECOND);//秒
        int day=c.get(Calendar.DAY_OF_WEEK);//星期几
        System.out.println(y+"年"+m+"月"+d+"日"+h+"时"+min+"分"+sec +"秒");
        System.out.println("显示今天星期"+day);
        System.out.println("实际今天星期"+(day-1));
        Calendar c1=Calendar.getInstance();
        c1.set(1998,11,11,8,0,0);//设置时间 月与设置的月差一月
        System.out.println("原时间"+c1.getTime());
        c1.add(Calendar.DATE,10);//c1对象加上10天
        System.out.println("10天后"+c1.getTime());
        c1.add(Calendar.DATE,-20);//c1对象减去20天,之前加上10天,也就是原来的日期减去10天
        System.out.println("10天前"+c1.getTime());
       int dayLag=(int) ((c.getTimeInMillis()- c1.getTimeInMillis())/1000/60/60/24);//long型
        System.out.println("1998.11.1到现在经过了"+dayLag+"天");
       c.setMinimalDaysInFirstWeek(7);//一周七天
        System.out.println("现在明确的时间显示:"+y+"年"+(m+1)+"月"+d+"日"+h+"时"+min+"分"+sec +"秒");





    }
}

GregorianCalendar

Calendar类实现了公历日历,Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代。

 构造方法:

 

 

import java.util.*;

public class DateDemo {
    public static void main(String[] args) {
        String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
        int year;
        // 默认为本地时间和时区 使用当前时间和日期
        GregorianCalendar g = new GregorianCalendar();
        // 显示当前时间和日期的信息
        System.out.print("Date: ");
        System.out.print(months[g.get(Calendar.MONTH)]);//从0开始 0就是一月
        System.out.print(" " + g.get(Calendar.DATE) + " ");
        System.out.println(year = g.get(Calendar.YEAR));
        System.out.print("Time: ");
        System.out.print(g.get(Calendar.HOUR) + ":");
        System.out.print(g.get(Calendar.MINUTE) + ":");
        System.out.println(g.get(Calendar.SECOND));

        // 测试当前年份是否为闰年
        if(g.isLeapYear(year)) {
            System.out.println("当前年份是闰年");
        }
        else {
            System.out.println("当前年份不是闰年");
        }




    }
}

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值