Date,Calendar

日期:Date,Calendar

Date :代表日期和时间的类 --------- import java.util.Date;

  Date类:已过时,可以使用SimpleDateFormate代替

import java.util.Date;
@SuppressWarnings("deprecation")    //  ---     压制警告
public class VoidDemo {
    public static void main(String[] args) {
        //创建了日期时间对象
        //CST --- China standard TimeZone ---中国标准时区---上海
        //在1900/1/25的基础上加的结果
        //有黑线的内容表示已过时,就是在将来的某个版本中就会被消除掉
        Date d = new Date(2012-1900,10-1,25);
        
        //可以输出日期以及时间
        System.out.println(d);      //Wed Jun 19 14:27:23 CST 2019
    
        System.out.println();
    }
}
 

 

SimpleDateFormate类

  提供了字符串转日期 ( parse() )

  日期转字符串( formate() )

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
public class VoidDemo {
    public static void main(String[] args) throws ParseException {
        //日期字符串互转
        //1.字符串转日期
        String s = "2019:06:20";
        //java.text.ParseException ---- 解析异常
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd");
        
        //日期转字符串
        Date d = sdf.parse(s);
        System.out.println(d);
        
        
        //2.日期转字符串
        Date d1 = new Date(2012-1900,10-1,25,12,54,2);
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        
        //日期转字符串
        String s1= sdf1.format(d1);
        System.out.println(s1);     //2012年10月25日 12时54分02秒
​
    }
}

 

Calendar

import java.util.Calendar;
import java.util.Date;
​
public class VoidDemo {
    public static void main(String[] args) {
        //得到日历类的对象
        Calendar c = Calendar.getInstance();
/*      java.util.GregorianCalendar     //格里高利历
 *      [time=1560928395534,            //从1970.1.1到现在的毫秒值
 *      areFieldsSet=true,areAllFieldsSet=true,lenient=true,
 *      zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai"      //时区为上海
 *      ,offset=28800000,               //时区偏移量(东八区与0区的时差毫秒值)
 *      dstSavings=0,useDaylight=false,transitions=19,lastRule=null],
 *      firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1     //这个区的第几天
 *      ,YEAR=2019,MONTH=5,WEEK_OF_YEAR=25,WEEK_OF_MONTH=4, //月份从0开始计算
 *      DAY_OF_MONTH=19,DAY_OF_YEAR=170,
 *      DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,
 *      HOUR=3,HOUR_OF_DAY=15,MINUTE=13,SECOND=15,
 *      MILLISECOND=534,ZONE_OFFSET=28800000,DST_OFFSET=0]
*/
        System.out.println(c);
        
        Date d = new Date(2012-1990,11-1,10);
        //把日期设置到日历中
        c.setTime(d);
​
        System.out.println(c.get(Calendar.DAY_OF_WEEK));
    }
}

 

 

案例:规定沪市开盘时间为每个月的第三周的周六,给定任意日期,输出开盘情况(开市,未开市,交易已结束)

java.time开始,有了新的日期和时间的类

import java.time.LocalDate;
​
public class VoidDemo {
    public static void main(String[] args) {
        //JDK1.8提供新的操作日期,不能操作时间
        LocalDate l = LocalDate.now();
        LocalDate l2=l.of(2012, 12, 25);
        System.out.println(l);
        System.out.println(l2);
    }
}

 

时间工具类

以规定形式返回日期

Data data:当前日期

int days:距离当前日期的天数

String format:显示日期的格式

package com.wiscom.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @program: base
 * @description: 时间日期工具类
 * @author: 王新晖
 * @create: 2020-04-19 19:41
 */
public class TimeUtil {
    public static String addDays(Date date, int days,String format){
        // 格式化时间
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        // 提供YEAR、MONTH、DAY_OF_MONTH、HOUR之间转换的方法
        Calendar theCa = Calendar.getInstance();
        // 使用给定的Date设置此日历的时间
        theCa.setTime(date);
        // 按照日历的规则,给指定字段添加或减少时间量
        theCa.add(theCa.DATE, days);
        // 获取处理后的时间
        Date start = theCa.getTime();
        return sdf.format(start);//三十天之前日期
    }
}

 

posted @ 2020-08-18 22:02  minnersun  阅读(124)  评论(0编辑  收藏  举报