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);//三十天之前日期 } }
保存redis相关笔记