软件开发和网站开发,wordpress棋牌模板,郑州做网站的,wordpress搭建子網站文章目录1.相关类1.1 java.util.Date1.2 java.text.DateFormat(抽象类)1.3 java.text.SimpleDateFormat(DateFormat的直接子类)1.4 java.util.Calendar(抽象类)2.示例2.1 日期取值2.1.1 获取当前系统时间(毫秒数)2.2 日期转换2.2.1 日期转字符串、字符串转日期2.2.2 将日期转换…文章目录1.相关类1.1 java.util.Date1.2 java.text.DateFormat(抽象类)1.3 java.text.SimpleDateFormat(DateFormat的直接子类)1.4 java.util.Calendar(抽象类)2.示例2.1 日期取值2.1.1 获取当前系统时间(毫秒数)2.2 日期转换2.2.1 日期转字符串、字符串转日期2.2.2 将日期转换成中文年月日时分秒2.2.3 将指定日期转换成带周的格式2.2.4 获取当前时间显示上午下午2.2.5 时间秒转化为多少天小时分秒在开发过程中少不了与时间打交道比如根据两个日期得出相差的时分秒时间加减时间累加前5分钟前一个月前一年等等…在JAVA中有六个与时间有关的类:java.util.Datejava.sql.Datejava.sql.Timejava.sql.Timestampjava.text.SimpleDateFormatjava.util.Calendar常用的也就是下面的几个:Date: getTime() setTime()Calendar: getInstance() getDateInstance() getDateTimeInstance() getTimeInstance()DateFormat: getInstance() getDateInstance() getDateTimeInstance() getTimeInstance()SimpleDateFormate: Formate(Date) parse(String s)1.相关类下面分别对他们介绍下:1.1 java.util.Datejava.util.Date 是java.sqlDate,Time,Timestamp的父类Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负long类型)表达一个特定的时间点。从 JDK 1.1 开始应该使用 Calendar 类实现日期和时间字段之间转换使用 DateFormat 类来格式化和分析日期字符串。因为Date的设计具有千年虫以及时区的问题所以Date中的大部分方法已经不建议使用了它们都被java.util.Calendar类所取代1.2 java.text.DateFormat(抽象类)DateFormat 是日期/时间格式化子类的抽象类它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(日期 - 文本)、分析(文本- 日期)和标准化。将日期表示为 Date 对象或者表示为从 GMT(格林尼治标准时间)1970 年1 月 1 日 00:00:00 这一刻开始的毫秒数。不过DateFormat的格式化Date的功能有限没有SimpleDateFormat强大但DateFormat是SimpleDateFormat的父类。1.3 java.text.SimpleDateFormat(DateFormat的直接子类)SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。日期格式字符串如下:字符含义示例y年yyyy—2020年M月MM—03月d日dd—06日E星期E—星期日a上下午a—上午(am)/下午(pm)H小时(24小时制)HH:mm:ss—22:57:10h12小时制hh:mm:ss—10:57:10m分HH:mm:ss—22:57:10s秒HH:mm:ss—22:57:10常见的转换有两种:将Date格式化为String:String format(Date d)将String解析为Date:Date parse(String s)1.4 java.util.Calendar(抽象类)java.util.Calendar 类用于封装日历信息其主要作用在于其方法可以对时间分量进行运算。Calendar 类是一个抽象类它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000格里高利历)的偏移量。与其他语言环境敏感类一样Calendar 提供了一个类方法 getInstance以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象其日历字段已由当前日期和时间初始化。2.示例大概可以分为以下五大类:2.1 日期取值2.1.1 获取当前系统时间(毫秒数)public void getNowDate(){//方式一Date date new Date();System.err.println(date.getTime());//方式二System.err.println(System.currentTimeMillis());//转换成指定的格式SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String current sdf.format(System.currentTimeMillis());System.err.println(current);}158350936686115835093668612020-03-06 23:42:462.2 日期转换2.2.1 日期转字符串、字符串转日期public void stringOrDateChange(){try {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);//1、日期转字符串Calendar calendar Calendar.getInstance();Date date calendar.getTime();String dateStringParse sdf.format(date);System.err.println(dateStringParse);//2、字符串转日期String dateString 2020-03-06 23:36:47;Date dateParse sdf.parse(dateString);System.err.println(dateParse);} catch (ParseException e) {e.printStackTrace();}}2020-03-06 23:43:40Fri Mar 06 23:36:47 CST 2020注意创建 SimpleDateFormat 对象时必须指定转换格式。转换格式区分大小写yyyy 代表年份MM 代表月份dd 代表日期HH 代表 24 进制的小时hh 代表 12 进制的小时mm 代表分钟ss 代表秒。2.2.2 将日期转换成中文年月日时分秒public void dateToChinese(){SimpleDateFormat sdf new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒);Date date new Date();String dateStr sdf.format(date);System.err.println(dateStr);}2020年03月06日 23时55分46秒2.2.3 将指定日期转换成带周的格式public void dateToWeek(){try {DateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);Date d1 df.parse(2020-03-06 23:43:40);//指定日期Calendar cal df.getCalendar();//当前时间Calendar cas Calendar.getInstance();int year cal.get(Calendar.YEAR);//获取年份int monthcal.get(Calendar.MONTH);//获取月份int daycal.get(Calendar.DATE);//获取日int hourcal.get(Calendar.HOUR);//小时int minutecal.get(Calendar.MINUTE);//分int secondcal.get(Calendar.SECOND);//秒int WeekOfYear cal.get(Calendar.DAY_OF_WEEK);//一周的第几天System.out.println(现在的时间是公元year年month月day日 hour时minute分second秒 星期WeekOfYear);} catch (ParseException e) {e.printStackTrace();}}现在的时间是公元2020年2月6日 11时43分40秒 星期62.2.4 获取当前时间显示上午下午public void getAmAndPm(){Date date new Date();DateFormat df1 DateFormat.getDateInstance();//日期格式精确到日System.out.println(df1.format(date));DateFormat df2 DateFormat.getDateTimeInstance();//可以精确到时分秒System.out.println(df2.format(date));DateFormat df3 DateFormat.getTimeInstance();//只显示出时分秒System.out.println(只显示出时分秒:df3.format(date));DateFormat df4 DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期周上下午时间(精确到秒)System.out.println(显示日期周上下午时间(精确到秒):df4.format(date));DateFormat df5 DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午时间(精确到秒)System.out.println(显示日期,上下午时间(精确到秒):df5.format(date));DateFormat df6 DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期上下午,时间(精确到分)System.out.println(显示日期上下午,时间(精确到分):df6.format(date));DateFormat df7 DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期时间(精确到分)System.out.println(显示日期时间(精确到分):df7.format(date));}2020-3-72020-3-7 0:18:28只显示出时分秒:0:18:28显示日期周上下午时间(精确到秒):2020年3月7日 星期六 上午12时18分28秒 CST显示日期,上下午时间(精确到秒):2020年3月7日 上午12时18分28秒显示日期上下午,时间(精确到分):20-3-7 上午12:18显示日期时间(精确到分):2020-3-7 0:18:282.2.5 时间秒转化为多少天小时分秒public void formatSeconds(){long seconds 100000000L;String timeStr seconds 秒;if(seconds 60){long second seconds % 60;long min seconds / 60;timeStr min 分 second 秒;if(min 60){min (seconds / 60) % 60;long hour (seconds / 60) / 60;timeStr hour 小时 min 分 second 秒;if(hour24){hour ((seconds / 60) / 60) % 24;long day (((seconds / 60) / 60) / 24);timeStr day 天 hour 小时 min 分 second 秒;}}}System.err.println(timeStr);}1157天9小时46分40秒