一、时间戳与Date类
class JavaStudy {
static StringBuffer stringBuffer = new StringBuffer("I am a good boy");
static String str2 = ", are you?";
public static void main(String[] args) {
System.out.println("************************获取时间戳********************");
long time = System.currentTimeMillis();
System.out.println(time);
System.out.println("************************当前时间的Date对象********************");
Date date = new Date(); //当前时间的Date对象
System.out.println(date);
System.out.println(date.toString());
System.out.println("************************通过时间戳创建Date对象********************");
Date utilDate1 = new Date(1622192520469L);
System.out.println(utilDate1.toString());
System.out.println(utilDate1.getTime()); // 获取时间戳
System.out.println("************************java.sql.Date********************");
java.sql.Date date2 = new java.sql.Date(162219250469L);
System.out.println(date2.toString());
java.sql.Date date3 = new java.sql.Date(utilDate1.getTime()); // java.util.Date 转为 java.sql.Date
System.out.println(date3);
}
}
//输出:
************************获取时间戳********************
1622193056414
************************当前时间的Date对象********************
Fri May 28 17:10:56 CST 2021
Fri May 28 17:10:56 CST 2021
************************通过时间戳创建Date对象********************
Fri May 28 17:02:00 CST 2021
1622192520469
************************java.sql.Date********************
1975-02-21
2021-05-28
二、java.text.SimpleDateFormat–日期格式化
class JavaStudy {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat();//默认格式,无参
Date date = new Date();
System.out.println("*********************格式化*********************");
String str = sdf.format(date);
System.out.println(str);
System.out.println("*********************解析,反向格式化*********************");
String dateStr = "2021/5/28 下午5:17"; //默认格式
Date date1 = sdf.parse(dateStr);
System.out.println(date1.toString());
System.out.println("*******************");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//指定格式
String dateStr1 = "2021-05-28 05:22:28";
Date date2 = sdf1.parse(dateStr1);
System.out.println(date2);
}
}
// 输出:
*********************格式化*********************
2021/5/28 下午5:28
*********************解析,反向格式化*********************
Fri May 28 17:17:00 CST 2021
*******************
Fri May 28 05:22:28 CST 2021
三、Calendar类
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
class JavaStudy {
public static void main(String[] args) {
GregorianCalendar d = new GregorianCalendar(); // 与Calendar.getInstance()相同
System.out.println("*******************获取当前对象的时间日期,默认当前时间*****************");
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1); // month从0开始
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//周日为1,周六为7
System.out.println("**************************设置当前对象的时间日期***********************");
calendar.set(Calendar.DAY_OF_MONTH,22);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("**************************设置当前对象的时间日期***********************");
calendar.add(Calendar.DAY_OF_MONTH,22);
System.out.println(calendar.get(Calendar.MONTH)+1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("**************************与Date对象的转换***********************");
Date date = calendar.getTime();
System.out.println(date.toString());
Date date1 = new Date();
calendar.setTime(date1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
}
}
// 输出:
*******************获取当前对象的时间日期,默认当前时间*****************
2021
5
29
7
**************************设置当前对象的时间日期***********************
22
**************************设置当前对象的时间日期***********************
6
13
**************************与Date对象的转换***********************
Sun Jun 13 09:46:26 CST 2021
29
四、LocalDate、LocalTime、LocalDateTime:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
class JavaStudy {
public static void main(String[] args) {
System.out.println("*****************获取当前日期或时间******************");
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);
System.out.println("*****************设置固定时间--of()修改原对象******************");
System.out.println("******************LocalDateTime*****************");
LocalDateTime localDateTime1 = LocalDateTime.of(2021, 5, 29, 9, 53, 0);
System.out.println(localDateTime1.getYear());
System.out.println(localDateTime1.getMonth());
System.out.println(localDateTime1.getDayOfMonth());
System.out.println(localDateTime1.getHour());
System.out.println(localDateTime1.getMinute());
System.out.println(localDateTime1.getSecond());
System.out.println("******************LocalDate*****************");
LocalDate localDate1 = LocalDate.of(2021, 5, 29);
System.out.println(localDate1.getYear());
System.out.println(localDate1.getMonth());
System.out.println(localDate1.getDayOfMonth());
System.out.println(localDate1.getDayOfWeek());
System.out.println("*******************LocalTime****************");
LocalTime localTime1 = LocalTime.of(9, 53, 0,99);
System.out.println(localTime1.getHour());
System.out.println(localTime1.getMinute());
System.out.println(localTime1.getSecond());
System.out.println(localTime1.getNano()); //获取纳秒
System.out.println("*****************设置固定时间--with()不修改原对象******************");
LocalDateTime localDateTime2 = localDateTime1.withDayOfMonth(22);
System.out.println(localDateTime1);
System.out.println(localDateTime2);
System.out.println("*****************时间加减--plus()不修改原对象******************");
LocalDateTime localDateTime3 = localDateTime1.plusDays(-99);
System.out.println(localDateTime3);
}
}
// 输出:
*****************获取当前日期或时间******************
2021-05-29
10:10:27.064265500
2021-05-29T10:10:27.064265500
*****************设置固定时间--of()修改原对象******************
******************LocalDateTime*****************
2021
MAY
29
9
53
0
******************LocalDate*****************
2021
MAY
29
SATURDAY
*******************LocalTime****************
9
53
0
99
*****************设置固定时间--with()不修改原对象******************
2021-05-29T09:53
2021-05-22T09:53
*****************时间加减--plus()不修改原对象******************
2021-02-19T09:53
五、DateTimeFormatter格式化
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;
class JavaStudy {
public static void main(String[] args) {
System.out.println("********预定义方式********");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
LocalDateTime localDateTime = LocalDateTime.now();
String format = dateTimeFormatter.format(localDateTime);
System.out.println(localDateTime);
System.out.println(format);
TemporalAccessor parse = dateTimeFormatter.parse(format); // 解析
System.out.println(parse);
System.out.println("********本地化相关的格式********");
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
System.out.println(dateTimeFormatter1.format(localDateTime));
DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
System.out.println(dateTimeFormatter2.format(LocalDate.now()));
System.out.println("********自定义格式********");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
String format1 = dtf.format(LocalDateTime.now());
System.out.println(format1);
TemporalAccessor parse1 = dtf.parse("2021-05-29 10:31:34");
System.out.println(parse1);
}
}
// 输出
********预定义方式********
2021-05-29T21:39:32.448
2021-05-29T21:39:32.448
{},ISO resolved to 2021-05-29T21:39:32.448
********本地化相关的格式********
21-5-29 下午9:39
2021年5月29日 星期六
********自定义格式********
2021-05-29 09:39:32
{NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=34, HourOfAmPm=10, MinuteOfHour=31, MilliOfSecond=0},ISO resolved to 2021-05-29
六、Instant