关于时间的各种操作
2020-01-14 21:48
162 查看
1.Date:
日期字符串格式大小比较 String str1="2015-02-08"; String str2="2015-01-08"; int res=str1.compareTo(str2); 1是大于 0是等于 -1是小于
获取某年第一天日期 Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime();
获取某年最后一天日期 Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime();
获取当月首日 方1: Calendar c = Calendar.getInstance(); c.setTime(date); c.set(Calendar.DAY_OF_MONTH, 1); date = c.getTime(); return date; 方2: public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //获取当前月第一天: Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 String monthfirst = TimeUtils.sdf.format(c.getTime()); System.out.println("===============nowfirst:" + monthfirst);
获取当月最后一天 方1 //获取当前月最后一天 Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String monthlast = TimeUtils.sdf.format(ca.getTime()); System.out.println("===============last:" + monthlast);
2.LocalDate
该类的实例是一个不可变对象,只提供简单的日期,不含当天的时间信息,不附带任何与时区相关的信息。
LocalDate date = LocalDate.of(2014, 3, 18);// 2014-03-18 int yeat = date.getYear();// 2014 Month month = date.getMonth();// MARCH int day = date.getDayOfMonth();// 18 DayOfWeek dow = date.getDayOfWeek();// TUESDAY int len = date.getlengthOfMonth();// 31 boolean leap = date.isLeapYear();// false
LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18 LocalDate date2 = date1.withTear(2011);// 2011-03-18 LocalDate date3 = date2.withDayOfMonth(25);// 2011-03-25 LocalDate date4 = date3.with(ChronoField.MONTH_OF_TEAR, 9)// 2011-09-25
LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18 LocalDate date2 = date1.plusWeeks(1);// 2014-03-25 LocalDate date3 = date2.minusYears(3);// 2011-03-25 LocalDate date4 = date3.plus(6, ChronoUnit.MONTHS);)// 2011-09-25
LocalDate date = LocalDate.now(); int year = date.get(ChronoField.year); int month = date.get(ChronoField.MONTH_OF_YEAR); int day = date.get(ChronoField.DAY_OF_MONTH);
增减日/月 LocalDate now = LocalDate.now(); LocalDate minusMonthsAfter = now.minusMonths(8);//操作月 LocalDate minusDaysAfter = now.plusDays(-233);//操作日 String strDay = minusDaysAfter.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));//格式化
获取当月首日 LocalDate today = LocalDate.now(); LocalDate kssj = today.with(TemporalAdjusters.firstDayOfMonth()); String format = kssj.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); System.out.println("获取首日--"+format);
获取当月最后一天 LocalDate today1 = LocalDate.now(); LocalDate kssj1 = today1.with(TemporalAdjusters.lastDayOfMonth()); String format1 = kssj1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); System.out.println("获取最后日--"+format1);
3.LocalTime
表示一天中的时间,可以使用LocalTime:
LocalTime time = LocalTime.of(13, 45, 20);// 12:45:20 int hour = time.getHour();// 13 int minute = time.getMinute();// 45 int second = time.getSecond();// 20 LocalDate date = LocalDate.parse("2014-03-18"); LocalTime time = LocalTime.parse("13:45:20");
4.LocalDateTime
LocalDateTime是LocalDate和LocalTime的合体,同时表示了日期和时间,但是不带有时区信息。
// 2014-03-18T13:45:20 LocalDateTime dt1 = LocalDateTime.of(2014, Month.MARCH, 18, 13, 45, 20); LocalDateTime dt2 = LocalDateTime.of(date, time); LocalDateTime dt3 = date.atTime(13, 45, 20); LocalDateTime dt3 = time.atDate(date); LocalDate date1 = dt1.toLocalDate(); LocalTime time1 = dt1.toLocalTime();
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 关于时间的各种操作(转载)
- js关于时间的各种操作
- Oracle关于时间/日期的操作
- 关于Oracle数据中日期时间的操作
- 对时间的各种操作
- 【MySql APIs】很完整的关于怎么用各种方法连接Mysql数据库,和使用API来操作Mysql数据库的资料
- 各种序列化反序列化操作时间对比
- 关于python下各种时间格式的转换
- 典型PC机上各种操作的近似时间
- oracle中关于表的各种操作
- java中关于时间日期操作的常用函数
- Mysql各种关于函数的操作语句
- Oracle关于时间/日期的操作
- 关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.
- 比较全的关于时间的操作的东西
- iOS 关于时间、日期的各种计算
- 关于c#对日期时间字符串的格式化操作
- java中关于时间日期操作的常用函数
- java中关于时间日期操作地常用函数
- Oracle关于时间/日期的操作