java_日期类

Date类:获取Unix时间戳以及将与年-月-日-时-分-秒的互换
Calendar类:除了可以获得时间外可以做日期加减法,也不需要考虑闰年

 

Date类:

package com.hb2.Arrays_System_Obeject_Math_Data_Integ.Data类;
 
/*
    public Date(), 分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
    public Data(long data), 分配一个Date对象,并将其初始化为表示从基准时间起指定的毫秒数
 */
public class Date {
    public static void main(String[] args) {
        java.util.Date d1 = new java.util.Date();
        System.out.println(d1);
//      输出:  Fri Apr 22 19:32:08 CST 2022
//                                 CST 中国标准时间
//      说明它的toString被重写了,原本是:全路径名@地址
 
        long Date = 1000 * 60 * 60;//一小时
        java.util.Date d2 = new java.util.Date(Date);
        System.out.println(d2);
        //输出: Thu Jan 01 09:00:00 CST 1970 (东八区,加了8小时)
 
 
        //*常用方法*
        //public long getTime(), 获取的日期对象是从1970.1.1 00:00:00到现在的毫秒值
        //public void setTime(long time), 设置时间,给的是毫秒值
        java.util.Date d = new java.util.Date();
        System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
        //输出:52.34106828776636年
 
        java.util.Date D = new java.util.Date();
        long time = 1000*60*60;
        D.setTime(time);
        System.out.println(D);
        //输出:Thu Jan 01 09:00:00 CST 1970
 
    }
}

SimpleDateFormat:

package com.hb2.Arrays_System_Obeject_Math_Data_Integ.Data类;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/*
    SimpleDateFormat是一个具体类,用于以区域设置敏感的方式格式化和解析日期
    常用:
    y   年
    M   月
    d   日
    H   时
    m   秒
    s   秒
    构造方法:
    public SimpleDateFormat(), 使用默认模式和日期格式
    public SimpleDateFormat(String pattern), 使用给定的模式和日期格式
    格式化(从 Date 到 String):
    public final String format(Date date), 将日期格式化成日期/时间字符串
    解析(从 String 到 Date):
    public Date parse(String source), 从给定字符串的开始解析文本以生成日期
 */
public class 日期SimpleDateFormat {
 
 
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        System.out.println(d);
 
        //格式化:从 Date 到 String
            SimpleDateFormat sdf = new SimpleDateFormat();
            String s = sdf.format(d);
            System.out.println(s);
             //2022/4/22 下午8:23
 
             //SimpleDateFormat d2 = new SimpleDateFormat("y年 M月d日 H:m:s");
            SimpleDateFormat d2 = new SimpleDateFormat("yyyy年 MM月dd日 HH:mm:ss");//?
            String s2 = d2.format(d);
            System.out.println(s2);
             //2022年 04月22日 20:34:06
 
        //解析:从 String 到 Date
            String ss = "2048-08-09 11:11:11";
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//?
            Date dd = sdf2.parse(ss);//报错,异常,先用alt+enter,选第一个,为抛出异常(开发多是第二个?)
            System.out.println(dd);
    }
}

 日期工具类:

//Demo类
 
package com.hb2.Arrays_System_Obeject_Math_Data_Integ.日期工具类;
 
import java.text.ParseException;
import java.util.Date;
 
public class Demo {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
 
        String s1 = DateUtils.DatetoString(d, "y年M月d日 H:m:s");
        System.out.println(s1);
 
        String s2 = DateUtils.DatetoString(d, "y年M月d日");
        System.out.println(s2);
 
        String s = "2022-08-01 11:11:11";
        Date dd = DateUtils.StringtoDate(s, "y-M-d H:m:s");
        System.out.println(dd);
 
    }
}
 
 
//DateUtils类
 
package com.hb2.Arrays_System_Obeject_Math_Data_Integ.日期工具类;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/*
    工具类:
    !构造方法私有!
    !成员方法静态!
*/
public class DateUtils {
 
    private DateUtils() {
    }
 
    /*
    把日期转为指定格式的字符串
    返回值类型: String
    参数:Date date, String format
     */
    public static String DatetoString(Date date, String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(date);
        return  s;
    }
 
     /*
     把日期解析为指定格式的日期
     返回值类型:Data
     参数:String s, String format
      */
    public static Date StringtoDate(String s, String format) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date d = sdf.parse(s);
        return d;
    }
}
 

Calendar类: 

package com.hb2.日期类.Calendar;

import java.util.Calendar;

/*
    Calendar(抽象类,不可直接实例化,通过子类实例化)为某一时刻和一组
          日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
    Calendar提供了一个类方法, getInstance 用于获取Calendar对象,其
                                日历字段已使用当前日期和时间初始化
       
     Calendar rightNow = Calendar.getInstance();

 */
public class Demo {
    public static void main(String[] args) {

        Calendar c = Calendar.getInstance();//多态的形式
        System.out.println(c);

        //public int get (int field), 返回给定日历字段的值
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MARCH)+1;//从0开始,所以要+1
        int date = c.get(Calendar.DATE);

        System.out.println(year+"年"+month+"月"+date+"日");
    }
}


//常用方法

package com.hb2.日期类.Calendar;

import java.util.Calendar;
/*
    public abstract void add (int field, int amount), 根据
               日历的规则,将指定的时间两添加或减去给定的日历字段
    public final void set (int year, int month, int date),
                                        设置当前日历的年月日
 */
public class 常用方法 {
    public static void main(String[] args) {

        Calendar c = Calendar.getInstance();//多态的形式

        //public int get (int field), 返回给定日历字段的值
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MARCH)+1;//从0开始,所以要+1
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
        //2022年4月22日

        Calendar c2 = Calendar.getInstance();//多态的形式
        //三年前的今天
        c2.add(Calendar.YEAR, -3);//年份-3
        int year2 = c2.get(Calendar.YEAR);
        int month2 = c2.get(Calendar.MARCH)+1;//从0开始,所以要+1
        int date2 = c2.get(Calendar.DATE);
        System.out.println(year2+"年"+month2+"月"+date2+"日");
        //2019年4月22日

        Calendar c3 = Calendar.getInstance();
        c3.set(2011,11,11);
        int year3 = c3.get(Calendar.YEAR);
        int month3 = c3.get(Calendar.MARCH)+1;//从0开始,所以要+1
        int date3 = c3.get(Calendar.DATE);
        System.out.println(year3+"年"+month3+"月"+date3+"日");
        //2011年12月11日


    }
}

 求二月天数:

package com.hb2.日期类;

import java.util.Calendar;
import java.util.Scanner;

public class 二月天 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = in.nextInt();

        Calendar c = Calendar.getInstance();
        c.set(year,2,1);//3月1号

        c.add(Calendar.DATE, -1);
        int date = c.get(Calendar.DATE);
        System.out.println(date);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值