JAVA对于时间的花式操作
- 时间操作类
- LocalDateTime/LocalDate
- Date
- Calendar
- Instant
- 时间操作类之间的互相转换
- LocalDateTime -> LocalDate
- LocalDateTime -> Date
- LocalDateTime -> Instance
- Date -> LocalDateTime/LocalDate
- Date -> Calendar
- Date -> Instant
- Calendar -> Date
- Calendar -> LocalDateTime
- Instant -> LocalDateTime/LocalDate
- Instant -> Date
时间操作类
LocalDateTime/LocalDate
LocalDateTime aa=LocalDateTime.now();
String dateStr=aa.toLocalDate().toString();
System.out.println("获取日期:" + dateStr);
String timeStr=aa.toLocalTime().toString();
int year=aa.getYear();
int month=aa.getMonthValue();
int day=aa.getDayOfMonth();
int hour=aa.getHour();
int minute=aa.getMinute();
int second=aa.getSecond();
System.out.format("获取时间:%s,年:%d,月:%d,日:%d,时:%d,分:%d,秒:%d%n",timeStr,year,month,day,hour,minute,second);
String dataTimeStr=aa.toString();
System.out.println("获取日期时间字符串:" + dataTimeStr);
LocalDate ld=LocalDate.now();
boolean isLeapYear = ld.isLeapYear();
System.out.println("今年是闰年:" + isLeapYear);
System.out.println("当前时间:" + ld);
String formatter=aa.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("格式化当前时间:" + formatter);
System.out.println("后5天时间:"+aa.plusDays(5));
System.out.println("前5天时间并格式化:"+aa.minusDays(5).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
System.out.println("前一个月的时间:"+aa.minusMonths(1).format(DateTimeFormatter.ofPattern("yyyyMM")));
System.out.println("后一个月的时间:"+aa.plusMonths(1));
System.out.println("指定2099年的当前时间:"+aa.withYear(2099));
LocalDate ld3=LocalDate.of(2017, Month.NOVEMBER, 17);
LocalDate ld4=LocalDate.of(2018, 02, 11);
LocalDateTime localDateTime = LocalDateTime.of(2019, Month.SEPTEMBER, 10, 14, 46, 56);
System.out.println("设置指定时间:" + localDateTime);
LocalDate ld1=LocalDate.parse("2017-11-17");
LocalDate ld2=LocalDate.parse("2018-01-05");
Period p=Period.between(ld1, ld2);
System.out.println("相差年: "+p.getYears()+" 相差月 :"+p.getMonths() +" 相差天:"+p.getDays());
LocalDateTime ldt4 = LocalDateTime.now();
LocalDateTime ldt5 = ldt4.plusMinutes(10);
System.out.println("当前时间是否大于:"+ldt4.isAfter(ldt5));
System.out.println("当前时间是否小于"+ldt4.isBefore(ldt5));
Date
long l = System.currentTimeMillis();
System.out.println(l);
Date d = new Date();
System.out.println(d);
Date d1 = new Date(l);
System.out.println(d1);
Date d2 = new Date();
DateFormat df = DateFormat.getDateInstance( );
String dat1= df.format(d2);
System.out.println(dat1);
df = new SimpleDateFormat("yyyy--MM--dd HH::mm::s" );
String dat2= df.format(d2);
System.out.println(dat2); String str1= "2015年6月20日";
DateFormat df1 = DateFormat.getDateInstance(DateFormat.LONG);
Date date = null;
try {date = df1.parse(str1);
} catch (ParseException e) {e.printStackTrace();
}
System.out.println(date);
System.out.println("比较时间前者是否在后者之前: " + date.before(d2));
System.out.println("比较时间前者是否在后者之后: " + date.after(d2));
Calendar
Calendar calendar = Calendar.getInstance();
System.out.println("当前Instant时间:" + calendar.toInstant().atZone(ZoneId.systemDefault()).toString());
System.out.println("当前年:" + calendar.get(Calendar.YEAR));
System.out.println("当前月(从0开始计数):" + calendar.get(Calendar.MONTH));
System.out.println("当前日:" + calendar.get(Calendar.DATE));
System.out.println("当前小时(12小时制):" + calendar.get(Calendar.HOUR));
System.out.println("当前分钟:" + calendar.get(Calendar.MINUTE));
System.out.println("当前秒:" + calendar.get(Calendar.SECOND));
System.out.println("当前毫秒:" + calendar.get(Calendar.MILLISECOND));
System.out.println("当前小时(24小时制):" + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("当前周的第几天(星期日为1,以此推算):" + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("当前月中的第几天:" + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("当前年的第几天:" + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("当前月中的第几周:" + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("当前年的第几周:" + calendar.get(Calendar.WEEK_OF_YEAR));Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.DATE,34);
System.out.println("操作后的日:" + calendar1.get(Calendar.DATE));
System.out.println("操作后的月(从1开始计数):" + calendar1.get(Calendar.MONTH));
Calendar calendar2 = Calendar.getInstance();
calendar2.roll(Calendar.DATE,34);
System.out.println("操作后的日:" + calendar2.get(Calendar.DATE));
System.out.println("操作后的月(依然是操作前的月,从0开始计数):" + calendar2.get(Calendar.MONTH));
calendar.set(1999, 1, 20);
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.YEAR));
System.out.println("小时:" + calendar.get(Calendar.HOUR_OF_DAY));
Date time = calendar.getTime();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy--MM--dd HH::mm::ss");
System.out.println(sdf.format(time));
System.out.println(calendar.after(calendar2));
System.out.println(calendar.before(calendar1));
System.out.println(calendar.compareTo(calendar));
Instant
Instant inst1 = Instant.now();
System.out.println("当前时间戳 : " + inst1);
Instant inst2 = inst1.plus(Duration.ofSeconds(10));
System.out.println("增加之后的时间 : " + inst2);
System.out.println("相差毫秒 : " + Duration.between(inst1, inst2).toMillis());
System.out.println("相毫秒 : " + Duration.between(inst1, inst2).getSeconds());
System.out.println("相差毫秒1 : " + Duration.between(inst2, inst1).toMillis());
System.out.println("相毫秒1 : " + Duration.between(inst2, inst1).getSeconds());
时间操作类之间的互相转换
LocalDateTime -> LocalDate
LocalDate localDate = localDateTime.toLocalDate();
LocalDateTime -> Date
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
LocalDateTime -> Instance
Instant instant = Instant.from(LocalDateTime.now());
Date -> LocalDateTime/LocalDate
Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDate localDate = localDateTime.toLocalDate();
Date -> Calendar
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date );
Date -> Instant
Date date = new Date();
Instant instant = date.toInstant();
Calendar -> Date
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
Calendar -> LocalDateTime
Calendar calendar = Calendar.getInstance();
LocalDateTime thisDateTime = LocalDateTime.ofInstant(calendar, ZoneOffset.systemDefault());
Instant -> LocalDateTime/LocalDate
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());
Instant -> Date
Date date = Date.from(Instant.now());
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!