推广 热搜: 回收ACF  ACF胶  收购ACF  200*16防溢裙板  济宁防溢裙板  求购ACF  挡尘帘  @2022已最新(今日/知乎)  AH0.6/12矿用按钮箱  GLD2200/7.5/S甲带给煤机 

java日期格式定义(获取多种日期格式)

   日期:2023-08-09     浏览:26    评论:0    
核心提示:该系列为Java工具类系列,主要展示100个常用的java工具类。 此文重点讲述:字符串之个性化格式处理。 一、日期工具类(本文重点) import java.sql.Timestamp;imp

该系列为Java工具类系列,主要展示100个常用的java工具类。

此文重点讲述:字符串之个性化格式处理。

一、日期工具类(本文重点)

import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class DateUtils { public static final String DATETIME_pattern = "yyyy-MM-dd HH:mm:ss"; public static final String NO_SECOND_DATETIME_PATTERN = "yyyy-MM-dd HH:mm"; public static final String DATE_PATTERN = "yyyy-MM-dd"; public static final String TIME_PATTERN = "HH:mm:ss"; private static final String YEAR_PATTERN = "yyyy"; private static final String START_TIME = "00:00:00"; private static final String END_TIME = "23:59:59"; public static final long MILLISECONDS_PER_DAY = 86400000L; public static final long MILLISECONDS_PER_HOUR = 3600000L; public static final long MILLISECONDS_PER_SEConDS = 1000L; public static final String SUNDAY = "星期日"; public static final String MonDAY = "星期一"; public static final String TUESDAY = "星期二"; public static final String WEDNESDAY = "星期三"; public static final String THURSDAY = "星期四"; public static final String FRIDAY = "星期五"; public static final String SATURDAY = "星期六"; public static String getDateTimeStr() { return format(new Date(), DATETIME_PATTERN); } public static String getDateStr() { return format(new Date(), DATE_PATTERN); } public static String getTimeStr() { return format(new Date(), TIME_PATTERN); } public static String getYearStr() { return format(new Date(), YEAR_PATTERN); } public static String getDayStr() { return format(new Date(), "dd"); } public static String getDayOfWeekStr(Date date) { String[] weekOfDays = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int num = calendar.get(Calendar.DAY_OF_WEEK) - 1; return weekOfDays[num]; } public static String format(Date date, String pattern) { return new SimpleDateFormat(pattern).format(date); } public static String getDateTimeStr(long timestamp, String pattern) { return new SimpleDateFormat(pattern).format(timestamp); } public static Date parse(String dateStr, String pattern) { Date date = null; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); dateFormat.setLenient(false); try { date = dateFormat.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date; } public static Date addMonths(Date date, int num) { return add(date, num, Calendar.MONTH); } public static Date addMonths(int num) { return add(new Date(), num, Calendar.MONTH); } public static Date addDays(Date date, int num) { return add(date, num, Calendar.DAY_OF_MONTH); } public static Date addDays(int num) { return add(new Date(), num, Calendar.DAY_OF_MONTH); } public static Date addHours(Date date, int num) { return add(date, num, Calendar.HOUR_OF_DAY); } public static Date addHours(int num) { return add(new Date(), num, Calendar.HOUR_OF_DAY); } public static Date addMinutes(Date date, int num) { return add(date, num, Calendar.MINUTE); } public static Date addMinutes(int num) { return add(new Date(), num, Calendar.MINUTE); } public static Date addSeconds(Date date, int num) { return add(date, num, Calendar.SECOND); } public static Date addSeconds(int num) { return add(new Date(), num, Calendar.SECOND); } public static Date addMilliSeconds(Date date, int num) { return add(date, num, Calendar.MILLISECOND); } public static Date addMilliSeconds(int num) { return add(new Date(), num, Calendar.MILLISECOND); } public static Date add(Date date, int num, int unit) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(unit, num); return calendar.getTime(); } public static int getYearsBetween(Date startDate, Date endDate) { return getMonthsBetween(startDate, endDate) / 12; } public static int getMonthsBetween(Date startDate, Date endDate) { int months; int flag = 0; Calendar startCalendar = Calendar.getInstance(); startCalendar.setTime(startDate); Calendar endCalendar = Calendar.getInstance(); endCalendar.setTime(endDate); if (endCalendar.equals(startCalendar)) { return 0; } if (startCalendar.after(endCalendar)) { Calendar temp = startCalendar; startCalendar = endCalendar; endCalendar = temp; } if (endCalendar.get(Calendar.DAY_OF_MONTH) < startCalendar.get(Calendar.DAY_OF_MONTH)) { flag = 1; } if (endCalendar.get(Calendar.YEAR) > startCalendar.get(Calendar.YEAR)) { months = ((endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR)) * 12 endCalendar.get(Calendar.MONTH) - flag) - startCalendar.get(Calendar.MONTH); } else { months = endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH) - flag; } return months; } public static long getDaysBetween(Date startDate, Date endDate) { return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_DAY; } public static long getHoursBetween(Date startDate, Date endDate) { return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_HOUR; } public static long getSecondsBetween(Date startDate, Date endDate) { return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_SECONDS; } public static Calendar getCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } public static String getUTCTimeStr() { StringBuffer UTCTimeBuffer = new StringBuffer(); // 1、取得本地时间: Calendar cal = Calendar.getInstance(); // 2、取得时间偏移量: int zoneOffset = cal.get(Calendar.ZONE_OFFSET); // 3、取得夏令时差: int dstOffset = cal.get(Calendar.DST_OFFSET); // 4、从本地时间里扣除这些差量,即可以取得UTC时间: cal.add(Calendar.MILLISECOND, -(zoneOffset dstOffset)); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) 1; int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); UTCTimeBuffer.append(year).append("-").append(month).append("-").append(day); UTCTimeBuffer.append(" ").append(hour).append(":").append(minute); try { SimpleDateFormat sdf = new SimpleDateFormat(NO_SECOND_DATETIME_PATTERN); sdf.parse(UTCTimeBuffer.toString()); return UTCTimeBuffer.toString(); } catch (ParseException e) { e.printStackTrace(); } return null; } public static String timestampToStr(Timestamp timestamp) { return timestamp.toString().substring(0, 19); } public static boolean compareNowDate(String dateStr, String pattern) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); try { Date date = simpleDateFormat.parse(dateStr); return date.after(new Date()); } catch (ParseException e) { e.printStackTrace(); } return false; } public static boolean compareDate(String startDateStr, String endDateStr, String pattern) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); try { Date startDate = simpleDateFormat.parse(startDateStr); Date endDate = simpleDateFormat.parse(endDateStr); return endDate.after(startDate); } catch (ParseException e) { e.printStackTrace(); } return false; } public static boolean compareDate(Date startDate, Date endDate) { return endDate.after(startDate); } public static boolean isValidDate(String dateStr) { boolean convertSuccess = true; // 指定日期格式为四位年/两位月份/两位日期 SimpleDateFormat format = new SimpleDateFormat(DATETIME_PATTERN); try { format.setLenient(false); format.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); convertSuccess = false; } return convertSuccess; } public static Calendar getStartDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(Locale.CHINA); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); return calendar; } public static Calendar getEndDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(Locale.CHINA); calendar.setTime(date); int i = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, i); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); return calendar; }}

二、日期基础类介绍

Java中,有四个操作日期类型的基本类:

1) Date 2)Calendar 3)SimpleDateFormat 4)DateFormat

1、Date类 Date表示的是特定的瞬间,精确到毫秒。1秒=1000毫秒,1毫秒=1000微秒。

java日期格式定义(获取多种日期格式)(1)

Date类常用方法

2、Calendar类 Calendar提供了获取和设置各种日历字段的方法;Calendar提供了一个类方法getInstance。一个calendar的实例是系统时间的抽象表示,可以从中获取年月日等详细信息。

java日期格式定义(获取多种日期格式)(2)

Calendar

3、DateFormat类 DateFormat是日期/时间格式化子类的抽象类,可以格式化并解析日期或时间。

java日期格式定义(获取多种日期格式)(3)

DateFormat

4、SimpleDateFormat类通过DateFormat的子类SimpleDateFormat类可以得到需要的日期显示格式。

java日期格式定义(获取多种日期格式)(4)

SimpleDateFormat

java日期格式定义(获取多种日期格式)(5)

本文仅供个人记录,大家可以借鉴,每行代码都是自己手打,亲测可直接粘贴执行,如有任何问题可在评论区提问,欢迎大家交流。

编辑人:程序幻境

码字不易,不喜勿踩

,
原文链接:http://www.hzciic.com/news/show-52812.html,转载和复制请保留此链接。
以上就是关于java日期格式定义(获取多种日期格式)全部的内容,关注我们,带您了解更多相关内容。
 
标签: 日期 字符串 时间
打赏
 
更多>同类资讯
0相关评论

推荐资讯
网站首页  |  VIP套餐介绍  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  手机版  |  SITEMAPS  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报