当前位置: 首页 > news >正文

Java基础:JDK7-时间Date

JDK7以前时间相关类

1.Date

Date date = new Date(); , sout(date)得到的是现在所处位置的时间

Date date = new Date(0L); , sout(date)得到的是时间原点也就是1970年1月1日08:00(东八区).

date.setTime(1000L); sout(date)得到的是时间原点后一秒钟的时间

long time = date.getTime(); sout(date)得到的是date所处时间距离时间原点的毫秒数.

1.1总结

2.SimpleDateFormat

2.1作用

 2.2构造方法和成员方法

 

// 此时此刻的时间Date date = new Date();// 时间原点的时间Date date1 = new Date(0L);System.out.println(date);// Wed Mar 01 10:48:59 CST 2023// 时间原点之后1秒的时间date.setTime(1000L);System.out.println(date);// Thu Jan 01 08:00:01 CST 1970// 获取date的时间距离原点时间的毫秒值long time = date.getTime();System.out.println(time);// 1000// 需求一:时间原点一年后的时间date.setTime(365 * 24 * 60 * 60 * 1000L);System.out.println(date);// Fri Jan 01 08:00:00 CST 1971// 需求二:比较两个Date对象哪个在前哪个在后Date date2 = new Date(100L);Date date3 = new Date(1000L);long time2 = date2.getTime();long time3 = date3.getTime();long max = Math.max(time2, time3);System.out.println(max);// simpledateformat// 空参构造是默认格式SimpleDateFormat sdf = new SimpleDateFormat();// 格式化(需要Date对象, 输出默认格式的时间字符串)Date date4 = new Date(1000000000000L);String format = sdf.format(date4);System.out.println(format);// 2001/9/9 上午9:46// 有参构造(设置格式Pattern)SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM/dd  HH/mm-ss EE");// 格式化(需要Date对象, 输出默认格式的时间字符串)Date date5 = new Date(2000000000000L);String format2 = sdf2.format(date5);System.out.println(format2);// 2033-05/18  11/33-20 周三// 解析(字符串->Date对象)// 生成要解析的字符串String datetest = "2023-5-20  13:14";// 生成SDF, 必须要和上面的字符串格式对应SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-M-dd  HH:mm");// 调用解析方法, 输入要解析的字符串, 返回Date对象Date parse = sdf3.parse(datetest);long time1 = parse.getTime();System.out.println(time1);// 1684559640000

2.3练习1

// practice1String birthday = "2000-11-11";SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd");Date parse1 = sdf4.parse(birthday);SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy年MM月dd日");String format1 = sdf5.format(parse1);System.out.println(format1);

2.4练习2

// practice2// start timeString starttime = "2023-11-11  00:00:00";String endtime = "2023-11-11  00:10:00";String xiaojia = "2023-11-11  00:01:00";String xiaopi = "2023-11-11  00:11:00";SimpleDateFormat sdf6 = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");Date startdate = sdf6.parse(starttime);Date enddate = sdf6.parse(endtime);Date xiaojiadate = sdf6.parse(xiaojia);Date xiaopidate = sdf6.parse(xiaopi);long startdateTime = startdate.getTime();long enddateTime = enddate.getTime();long xiaojiadateTime = xiaojiadate.getTime();long xiaopidateTime = xiaopidate.getTime();extracted(startdateTime, enddateTime, xiaojiadateTime);extracted(startdateTime, enddateTime, xiaopidateTime);

提取的方法, 用来判断是否参加上 

private static void extracted(long startdateTime, long enddateTime, long Time) {if (Time >= startdateTime && Time <= enddateTime){System.out.println("参加上了");}else {System.out.println("没参加上");}}

3.calendar

3.1获得calendar类

由于calendar是抽象类, 所以不能够直接创建对象, 需要通过getInstance方法来获得.

获取到的calendar对象会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。
会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中.

月份:范围0~11如果获取出来的是0.那么实际上是1月。

星期:在老外的眼里,星期日是一周中的第一天
1(星期日)2(星期一)3(星期二)―4(星期三)―5(星期四)6(星期五)―7(星期六)

Calendar中数组的索引对应的内容是 : 

0 : 纪元

1 : 年
2 : 月
3 : 一年中的第几周
4 : 一个月中的第几周
5 : 一个月中的第几天(日期)

3.2常用方法

使用get方法时, 输入Calendar数组中的索引值(在Calendar类中定义为了常量)

注意 : 获得的int要转化成我们自己的时间(星期和月份)

// calendarCalendar calendar = Calendar.getInstance();System.out.println(calendar);// java.util.GregorianCalendar[time=1677654807019,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2023,MONTH=2,WEEK_OF_YEAR=9,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=60,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=13,SECOND=27,MILLISECOND=19,ZONE_OFFSET=28800000,DST_OFFSET=0]// get Date calendarDate time4 = calendar.getTime();System.out.println(time4);// Wed Mar 01 15:10:54 CST 2023// set Date to CalendarDate date6 = new Date(5201314);calendar.setTime(date6);System.out.println(calendar);// getint year = calendar.get(Calendar.YEAR);int mouth = calendar.get(Calendar.MONTH) + 1;int day = calendar.get(Calendar.DAY_OF_MONTH);int week = calendar.get(Calendar.DAY_OF_WEEK);System.out.println(year + "-" + mouth + "-" + day + getweek(week));// modify year, mouth, day... of calendarcalendar.set(Calendar.YEAR, 1999);calendar.set(Calendar.MONTH, 10);calendar.set(Calendar.DAY_OF_MONTH, 31);System.out.println(calendar);// add year, mouth, day... of calendarcalendar.add(Calendar.YEAR, 2);calendar.add(Calendar.MONTH, 1);calendar.add(Calendar.DAY_OF_MONTH, -10);System.out.println(calendar);

获得符合我们的星期getweek()方法 

private static String getweek(int index){String[] week = {"", "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};return week[index];}
http://www.lryc.cn/news/25011.html

相关文章:

  • 什么是IP地址?
  • 4年经验之谈,什么是接口测试?怎样做接口测试?
  • 普通指针扫盲
  • 深度学习笔记:神经网络权重确定初始值方法
  • 关于 python 的异常使用说明 (python 的文件和异常)
  • Spark RDD持久化
  • 【Linux】Linux系统安装Python3和pip3
  • 用java进行base64加密
  • torch函数合集
  • AcWing算法提高课-3.1.2信使
  • Paddle OCR Win 11下的安装和简单使用教程
  • 杂谈:数组index问题和对象key问题
  • 三天Golang快速入门—Slice切片
  • 腾讯会议演示者视图/演讲者视图
  • 【C++】类与对象(一)
  • JavaScript基本语法
  • OpenCV4.x图像处理实例-道路车辆检测(基于背景消减法)
  • pwnlab通关流程
  • 面向过程与面向对象的区别与联系
  • 主机状态(查看资源占用情况、查看网络占用情况)
  • 代码随想录算法训练营第四十一天 | 01背包问题-二维数组滚动数组,416. 分割等和子集
  • VMware NSX 4.1 发布 - 网络安全虚拟化平台
  • 计算理论 复杂度预备知识
  • 二叉树——二叉搜索树中的插入操作
  • C# if break,if continue,if return的区别和使用
  • 力扣-第二高的薪水
  • I - 太阳轰炸(组合数学Cnk n固定)
  • centos安装gitlab
  • 【洛谷 P1093】[NOIP2007 普及组] 奖学金 题解(结构体排序)
  • 【Hello Linux】进程优先级和环境变量