日期相关的操作
Date的使用
Calendar日历类
DateFormat类 --> SimpleDateFormat类
Date的使用
package com.openlab.day15.date;
import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) throws ParseException {
// 获取当时时间
Date date = new Date();
System.out.println(date);//Tue Aug 17 01:35:50 CST 2021
// 千年虫BUG事件
// System.out.println(date.getYear());
// System.out.println(date.getMonth() + 1);
// System.out.println(date.getDate());
// Date对象提供获取时间的常见方法全都已经过时了,因此不建议大家这样使用了
// 获取当前时间的时间戳, 1970-01-01 00:00:00 距离当前的毫秒数
// System.out.println(date.getTime());
// java还可以通过System类获取时间戳,可以获取当前时间戳
// System.out.println(System.currentTimeMillis());
// 日期对象 ---> 字符串 格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//2021-08-17 01:37:49
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String format = sdf.format(date);
System.out.println(format);//2021年08月17日 01时35分50秒
// 字符串 ---> 日期对象
String strTime = "2018年10月8日 12:12:12";
DateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date2 = sdf2.parse(strTime);
System.out.println(date2);//Mon Oct 08 12:12:12 CST 2018
}
}
Calendar日历类
package com.openlab.day15.date;
import java.util.Calendar;
public class TestCalendar {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);
System.out.println(year +"-"+ month +"-"+ day + " "+ hour +":"+ minute +":"+s);
//2021-8-17 1:39:49
}
}
DateFormat类 --> SimpleDateFormat类
format是用于日期对象转字符串
parse是用于字符串转日期对象
simpleDateFomat是用于创建一个日期格式的对象,里面要传参数,传的是java日期的可识别的标识
日期对象 ---> 字符串 格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//2021-08-17 01:37:49
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String format = sdf.format(date);
System.out.println(format);//2021年08月17日 01时35分50秒
字符串 ---> 日期对象
String strTime = "2018年10月8日 12:12:12";
DateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date2 = sdf2.parse(strTime);
System.out.println(date2);//Mon Oct 08 12:12:12 CST 2018
JDK8 新的时间API
LocalDate
LocalTime
LocatDateTime
DateTimeFormatter
Instant
package com.openlab.day15.date;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class JDK8DateTIme {
public static void main(String[] args) {
// 本地日期
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
System.out.println(localDate.getDayOfMonth());
System.out.println(localDate.getDayOfYear());
// 本地时间
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
// 日期+时间的对象
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime);
// 专门用来格式化日期时间的对象
String str = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(str);
// 将日期字符串解析为日期对象
LocalDateTime ldt = LocalDateTime.parse("2000年03月08日 14:52:18", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
System.out.println(ldt);
// 伦敦标准时间,就是经度为0的,0时区时间
Instant instant = Instant.now();
System.out.println(instant);
}
}
DateTimeFormatter和instant
日期+时间的对象
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime);//2021-08-17T01:25:15.899
专门用来格式化日期时间的对象
String str = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(str);
将日期字符串解析为日期对象
LocalDateTime ldt = LocalDateTime.parse("2000年03月08日 14:52:18", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
System.out.println(ldt);
伦敦标准时间,就是经度为0的,0时区时间
Instant instant = Instant.now();
System.out.println(instant);