java中封装日期加时间_java日期处理简单封装
1 packageluojing.date;2
3 importjava.io.Serializable;4 importjava.text.ParseException;5 importjava.text.SimpleDateFormat;6 importjava.util.Calendar;7 importjava.util.Date;8 importjava.util.TimeZone;9
10 /**
11 * 日期时间处理封装12 *13 *@authorluojing14 */
15 public class DateTime implements Comparable, Serializable {16
17 private static final long serialVersionUID = 4715414577633839197L;18 private Calendar calendar =Calendar.getInstance();19 private SimpleDateFormat sdf = newSimpleDateFormat();20
21 private final String DEFAULT_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";22 private final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";23 private final String DEFAULT_TIME_PATTERN = "HH:mm:ss";24
25 publicDateTime() {26 }27
28 publicDateTime(String dateStr) {29 try{30 parse(dateStr);31 } catch(Exception e) {32 e.printStackTrace();33 }34 }35
36 publicDateTime(String dateStr, TimeZone timeZone) {37 this(dateStr);38 calendar.setTimeZone(timeZone);39 }40
41 publicDateTime(String dateStr, String pattern) {42 try{43 parse(dateStr, pattern);44 } catch(Exception e) {45 e.printStackTrace();46 }47 }48
49 publicDateTime(String dateStr, String pattern, TimeZone timeZone) {50 this(dateStr, pattern);51 calendar.setTimeZone(timeZone);52 }53
54 public DateTime(int year, int month, int day, int hour, int minute, intsecond) {55 calendar.set(year, month, day, hour, minute, second);56 }57
58 public DateTime(int year, int month, int day, int hour, int minute, intsecond, TimeZone timeZone) {59 this(year, month, day, hour, minute, second);60 calendar.setTimeZone(timeZone);61 }62
63 public DateTime(longmilliSeconds) {64 calendar.setTimeInMillis(milliSeconds);65 }66
67 publicCalendar getCalendar() {68 returncalendar;69 }70
71 public voidsetCalendar(Calendar calendar) {72 this.calendar =calendar;73 }74
75 publicDate getDate() {76 returncalendar.getTime();77 }78
79 public voidsetDate(Date date) {80 calendar.setTime(date);81 }82
83 public intgetYear() {84 returncalendar.get(Calendar.YEAR);85 }86
87 public void setYear(intyear) {88 calendar.set(Calendar.YEAR, year);89 }90
91 public intgetMonth() {92 returncalendar.get(Calendar.MONTH);93 }94
95 public void setMonth(intmonth) {96 calendar.set(Calendar.MONTH, month);97 }98
99 public intgetDay() {100 returncalendar.get(Calendar.DAY_OF_MONTH);101 }102
103 public void setDay(intdayOfMonth) {104 calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);105 }106
107 public intgetHour() {108 returncalendar.get(Calendar.HOUR_OF_DAY);109 }110
111 public void setHour(inthour) {112 calendar.set(Calendar.HOUR_OF_DAY, hour);113 }114
115 public intgetMinute() {116 returncalendar.get(Calendar.MINUTE);117 }118
119 public void setMinute(intminute) {120 calendar.set(Calendar.MINUTE, minute);121 }122
123 public intgetSecond() {124 returncalendar.get(Calendar.SECOND);125 }126
127 public void setSecond(intsecond) {128 calendar.set(Calendar.SECOND, second);129 }130
131 public longgetTimeInMilliSeconds() {132 returncalendar.getTimeInMillis();133 }134
135 public void setTimeInMilliSeconds(longmilliSeconds) {136 calendar.setTimeInMillis(milliSeconds);137 }138
139 publicTimeZone getTimeZone() {140 returncalendar.getTimeZone();141 }142
143 public voidsetTimeZone(TimeZone timeZone) {144 calendar.setTimeZone(timeZone);145 }146
147 /**
148 * 使用默认格式解析日期字符串149 *150 *@paramdateStr151 *@throwsException152 */
153 public void parse(String dateStr) throwsException {154 try{155 parse(dateStr, DEFAULT_DATETIME_PATTERN);156 } catch(Exception e) {157 try{158 parse(dateStr, DEFAULT_DATE_PATTERN);159 } catch(Exception e1) {160 try{161 parse(dateStr, DEFAULT_TIME_PATTERN);162 } catch(Exception e2) {163 throw new Exception("the date string [" + dateStr + "] could not be parsed");164 }165 }166 }167
168 }169
170 /**
171 * 使用给定模式解析日期字符串172 *173 *@paramdateStr174 *@parampattern175 *@throwsException176 */
177 public void parse(String dateStr, String pattern) throwsException {178 if (dateStr == null) {179 throw new NullPointerException("date string could not be null");180 }181
182 if (pattern == null) {183 throw new NullPointerException("the pattern string could not be null");184 }185
186 try{187 sdf.applyPattern(pattern);188 sdf.parse(dateStr);189 } catch(ParseException e) {190 throw new Exception("the date string [" + dateStr + "] could not be parsed with the pattern [" + pattern + "]");191 }192 calendar =sdf.getCalendar();193 }194
195 /**
196 * 格式化当前DateTime对象代表的时间197 *198 *@parampattern199 *@return
200 */
201 publicString format(String pattern) {202 sdf.applyPattern(pattern);203 returnsdf.format(calendar.getTime());204 }205
206 /**
207 * 获取默认格式日期字符串208 *209 *@return
210 */
211 publicString toDateTimeString() {212 sdf.applyPattern(DEFAULT_DATETIME_PATTERN);213 returnsdf.format(calendar.getTime());214 }215
216 @Override217 public intcompareTo(DateTime otherDateTime) {218 returncalendar.compareTo(otherDateTime.getCalendar());219 }220
221 /**
222 * 是否闰年223 *224 *@return
225 */
226 public booleanisLeapYear() {227 int year =getYear();228 boolean result = false;229 if (year % 100 == 0) {230 if (year % 400 == 0) {231 result = true;232 }233 } else if (year % 4 == 0) {234 result = true;235 }236 returnresult;237 }238
239 /**
240 * 获取星期241 *242 *@return
243 */
244 public intgetDayOfWeek() {245 returncalendar.get(Calendar.DAY_OF_WEEK);246 }247
248 /**
249 * 是否周末250 *251 *@return
252 */
253 public booleanisWeekend() {254 int dayOfWeek =getDayOfWeek();255 return dayOfWeek == 1 || dayOfWeek == 7;256 }257
258 /**
259 * 当前DateTime对象月份天数260 *261 *@return
262 */
263 public intgetDayNumsInMonth() {264 Calendar c =(Calendar) calendar.clone();265 c.set(Calendar.DAY_OF_MONTH, 1);266 c.roll(Calendar.DAY_OF_MONTH, -1);267 returnc.get(Calendar.DAY_OF_MONTH);268 }269
270 /**
271 * 两个日期之间间隔天数272 *273 *@paramotherDateTime274 *@return
275 */
276 public intdayNumFrom(DateTime otherDateTime) {277 long millis = Math.abs(getTimeInMilliSeconds() -otherDateTime.getTimeInMilliSeconds());278 int days = (int) Math.floor(millis / 86400000);279 returndays;280 }281
282 public booleanlessThan(DateTime otherDateTime) {283 return compareTo(otherDateTime) < 0;284 }285
286 public booleangreaterThan(DateTime otherDateTime) {287 return compareTo(otherDateTime) > 0;288 }289
290 public booleanequal(DateTime otherDateTime) {291 return compareTo(otherDateTime) == 0;292 }293
294 /**
295 * 当前时间基础上增加秒数(负数时为减)296 *297 *@paramamount298 */
299 public void plusSecond(intamount) {300 calendar.add(Calendar.SECOND, amount);301 }302
303 public void plusMinute(intamount) {304 calendar.add(Calendar.MINUTE, amount);305 }306
307 public void plusHour(intamount) {308 calendar.add(Calendar.HOUR, amount);309 }310
311 public void plusDays(intamount) {312 calendar.add(Calendar.DAY_OF_MONTH, amount);313 }314
315 public void plusMonth(intamount) {316 calendar.add(Calendar.MONTH, amount);317 }318
319 public void plusYear(intamount) {320 calendar.add(Calendar.YEAR, amount);321 }322
323 public void plus(int year, int month, int day, int hour, int minute, intsecond) {324 plusYear(year);325 plusMonth(month);326 plusDays(day);327 plusHour(hour);328 plusMinute(minute);329 plusSecond(second);330 }331
332 }
java中封装日期加时间_java日期处理简单封装相关推荐
- java中日历类的用法_java日期类的用法
java日期类的用法 不管你是处理财务交易还是计划着下一步的行动,你都要知道怎样在Java中建立,使用和显示日期.这需要你简单的查阅一下相应类的API参考:一个日期可以创建3个相关类的对象.这篇文章告 ...
- java 日期和时间_java 日期与时间操作
我们先来了解一下基本的概念 日期 2020-11-21 2020-11-22 时间 15:36:43 2020-11-21 15:36:43 时区 北京时间 2020-11-21 15:36:43 东 ...
- 在java中原始时间_Java 日期时间
Java 日期时间 java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二 ...
- java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断
怎么在java中利用正则表达式对时间日期进行判断 发布时间:2020-12-08 16:18:34 来源:亿速云 阅读:105 作者:Leah 这篇文章给大家介绍怎么在java中利用正则表达式对时间日 ...
- java文件中获取创建日期_如何在Java中获取文件的上次修改日期
java文件中获取创建日期 Sometimes we need to get the file last modified date in Java, usually for listeners li ...
- Java编程那些事儿78——时间和日期处理
Java编程那些事儿78--时间和日期处理 陈跃峰 出自:http://blog.csdn.net/mailbomb 9.6 java.util包 java.util包是Java语言提供的工具类包,该 ...
- mysql:日期加时间
基础语法: select date_add(字段, interval 1 day); select date_add(字段, interval 1 hour); select date_add(字段, ...
- 小程序日期加时间筛选组件
小程序日期加时间筛选组件 新建component->date-time-picker .wxml <picker mode="multiSelector" class= ...
- C语言中自动获取当前时间和日期
C语言中自动获取当前时间和日期代码 #include<stdio.h> #include<time.h> void main() {time_t t;//将t声明为时间变量st ...
最新文章
- 独家 | 一文读懂LinkedIn个性化推荐模型及建模原理
- SVG格式图片转成HTML中SVG的Path路径
- Qt自定义对话框中边框阴影实现
- 自动驾驶:蛇形曲线跟踪(Stanley Model)
- 微信公布7月朋友圈十大谣言 包括“奥运冠军杨倩被奖励1600万”等
- 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分
- silverlight3:(ItemControl 的)UI Virtualization
- 谷歌死磕亚马逊,CES 舞台上的语音入口争夺战
- ABP源码分析二十八:ABP.MemoryDB
- EasyGame网络游戏服务器解决方案
- Netlogo入门(二)
- 利用华为DTM将事件发送到Firebase
- 给图片添加指示箭头或者选中效果
- 西湖论剑2020writeup
- 企业微信获取企业凭证全流程
- the info.plist in the package must contain the CFBundleShortVersionString key.
- python练习15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
- 互联网人养娃 真就和别人不一样
- c语言怎么打开mp4格式错误,c语言怎么播放MP4?
- Oracle触发器分类及使用
热门文章
- oracle表数据误删恢复
- cnil在python_在Python中使用cumprod()计算权益曲线
- 计算氦原子的基态能级
- lopa分析_【风险分析方法】HAZOP、LOPA和FMEA三种分析方法,如何做到信息共享?...
- 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第9章-结论与展望
- 4.1 陷入不归路的调试-机器学习笔记-斯坦福吴恩达教授
- STM32 电机教程 12 - BLDC 闭环电流控制
- LTE 中的RV版本
- Android学习笔记:ScrollView卷轴视图
- Python whl文件制作简介