日期类型:java.util.Date
获取当前日期的两种方式:
--Date date = new Date();
--long item = System.currentTimeMillis(); Date date = new Date(item);
日期格式化SimpleDateFormat
--创建SimpleDateFormat的对象:
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
--使用:Date 格式化输出 String字符串
String item = sm.format(new Date());
--String类型表示日期 转换为 java.util.Date;
/**
* @author Lantzrung
* @date 2022年7月15日
* @Description
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
// 记住不要导错包 不要导错了import java.sql.Date;
public class DateDemo {
public static void main(String[] args) throws ParseException {
// 1、获取当前的系统时间
Date date = new Date();// new 一个实例化对象
System.out.println(date);// Fri Jul 15 21:52:37 CST 2022
// 2、通过时间戳来创建一个时间对象 时间戳-->1970年1月1如到现在的总毫秒数
// 方式一
long item = System.currentTimeMillis();
Date date2 = new Date(item);
System.out.println(date2);// Fri Jul 15 21:52:37 CST 2022
// 方式二
Date date1 = new Date(System.currentTimeMillis());
System.out.println(date1);// Fri Jul 15 21:52:37 CST 2022
// 3、时间格式化【本地化】 2022-07-15 22:12:58
// Date转换为字符串
// 格式化 yyyy-MM-dd HH:mm:ss 24小时制
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sm.format(date);
System.out.println(time);// 2022-07--15 22:12:58
// 格式化yyyy-MM-dd hh:mm:ss 12小时制
SimpleDateFormat sm1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String time1 = sm1.format(date);// 2022-07-15 10:12:58 //先将用一个String 数组time1定
// 义 ,再将date代入sm1.format()中
System.out.println(time1);// 11:12:58
// 格式化 HH:mm:ss 24小时制
SimpleDateFormat sm2 = new SimpleDateFormat("HH:mm:ss");
String time2 = sm2.format(date);
System.out.println(time2);// 22:12:58
// 字符串转换为Date
// 需要抛出异常 throws ParseException
Date item1 = sm1.parse("2021-07-15 22:12:58");// 12小时制:2021-07-15 22:12:58
// 定义的格式话那里 需要注意细节 不然会出现报错
// Exception in thread "main" java.text.ParseException: Unparseable date:
// "2021-07-15 22:12:58"
// at java.text.DateFormat.parse(Unknown Source)
System.out.println(item1);// Thu Jul 15 22:12:58 CST 2021
System.out.println(sm1.format(item1));// 2021-07-15 10:12:58
Date dItem = sm.parse("2021-07-15 22:12:58");
// 需要抛出异常 throws ParseException
System.out.println(dItem);// Thu Jul 15 22:12:58 CST 2021
}
}
Calendar是日历类型 比Date类型(1996年)能更好的处理日期和时间
类是一个抽象类,不能new对象
星期一 Mon 星期二 Tues 星期三Wed 星期四Thur 星期五 Fri 星期六 Sat 星期天 Sun
英语里面月份的缩写:
一月份Jan 二月份Feb 三月份Mar 四月份Apr 五月份May 六月份June 七月份July 八月份Aug 九月份Sept 十月份Oct 十一月份Nov 十二月份Dec
// Calendar是日历类型,更加具体,强大 比
// 1、如何获取Calendar的对象 Calendar是抽象类,不能new对象
//--获取Calendar类的实例对象:
Calendar calendar = Calendar.getInstance();//设置实例对象
// getTime 获取当前date时间 从CST到CDT的夏令时更改
System.out.println(calendar.getTime());// Thu Jul 14 12:31:34 CST 2022
// 根据字段来获取具体的时间
System.out.println(calendar.get(Calendar.YEAR)); // 注意:年份是2022 2022 年 year
System.out.println(calendar.get(Calendar.MONTH));// 注意:月份是0~11 而不是1~12 6 月 month
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 注意:一个月的第几天 14 天 day
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));// 注意:一周中的第几天 5 天 day
System.out.println(calendar.get(Calendar.SECOND)); //读取秒数 40s
// 根据字段来设置具体的时间 【set】 第一个参数为字段 第二个参数为数值
calendar.set(Calendar.MONTH, 15);// 设置月份
calendar.set(Calendar.DAY_OF_MONTH, 23);// 设置一个月的第几天
System.out.println(calendar.getTime());// 输出时间
//使用默认时区和语言环境获得一个日历。-- 设置当前时间:
//重新获取当前电脑的时间 时间戳 Thu Jul 14 13:52:46 CST 2022
//calendar.setTimeInMillis(System.currentTimeMillis());
练习://获取2020年和2021年的母亲节的日期,tips,5月份的第二个星期日,要求:输出时间格式为yyyy年MM月dd日
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class Demo2 {
public static void main(String[] args) {
//获取2020年和2021年的母亲节的日期,tips,5月份的第二个星期日,要求:输出时
//间格式为yyyy年MM月dd日
//1、如何获取Calendar的对象Calendar是抽象类,不能new对象
Calendar cd = Calendar.getInstance();//获取实例化对象
// 根据字段来设置具体的时间【set】第一个参数为字段 第二个参数为数值
cd.set(Calendar.YEAR, 2021);//设置年
cd.set(Calendar.MONTH, 4);//设置月 注意:这里月份是有0~11 所以5月份是要设置
//4的数值value
cd.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);//这里输出的这个月的第几周的
cd.set(Calendar.DAY_OF_WEEK, 1);//这里是从星期天输出的一周
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM--dd");
//Sun May 09 00:33:34 CST 2021
System.out.println(cd.getTime());//获取当前Calendar日历所要设置的时间
cd.set(Calendar.YEAR, 2020);//设置年
cd.set(Calendar.MONTH, 4);//设置月 注意:这里月份是有0~11 所以5月份是要设置
//4的数值value
cd.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);//这里输出的这个月的第几周的
cd.set(Calendar.DAY_OF_WEEK, 1);//这里是从星期天输出的一周
SimpleDateFormat sm1 = new SimpleDateFormat("yyyy-MM--dd");
//Sun May 10 00:33:34 CST 2020
System.out.println(cd.getTime());//获取当前Calendar日历所要设置的时间
}
}