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日期处理简单封装相关推荐

  1. java中日历类的用法_java日期类的用法

    java日期类的用法 不管你是处理财务交易还是计划着下一步的行动,你都要知道怎样在Java中建立,使用和显示日期.这需要你简单的查阅一下相应类的API参考:一个日期可以创建3个相关类的对象.这篇文章告 ...

  2. java 日期和时间_java 日期与时间操作

    我们先来了解一下基本的概念 日期 2020-11-21 2020-11-22 时间 15:36:43 2020-11-21 15:36:43 时区 北京时间 2020-11-21 15:36:43 东 ...

  3. 在java中原始时间_Java 日期时间

    Java 日期时间 java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二 ...

  4. java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断

    怎么在java中利用正则表达式对时间日期进行判断 发布时间:2020-12-08 16:18:34 来源:亿速云 阅读:105 作者:Leah 这篇文章给大家介绍怎么在java中利用正则表达式对时间日 ...

  5. java文件中获取创建日期_如何在Java中获取文件的上次修改日期

    java文件中获取创建日期 Sometimes we need to get the file last modified date in Java, usually for listeners li ...

  6. Java编程那些事儿78——时间和日期处理

    Java编程那些事儿78--时间和日期处理 陈跃峰 出自:http://blog.csdn.net/mailbomb 9.6 java.util包 java.util包是Java语言提供的工具类包,该 ...

  7. mysql:日期加时间

    基础语法: select date_add(字段, interval 1 day); select date_add(字段, interval 1 hour); select date_add(字段, ...

  8. 小程序日期加时间筛选组件

    小程序日期加时间筛选组件 新建component->date-time-picker .wxml <picker mode="multiSelector" class= ...

  9. C语言中自动获取当前时间和日期

    C语言中自动获取当前时间和日期代码 #include<stdio.h> #include<time.h> void main() {time_t t;//将t声明为时间变量st ...

最新文章

  1. 独家 | 一文读懂LinkedIn个性化推荐模型及建模原理
  2. SVG格式图片转成HTML中SVG的Path路径
  3. Qt自定义对话框中边框阴影实现
  4. 自动驾驶:蛇形曲线跟踪(Stanley Model)
  5. 微信公布7月朋友圈十大谣言 包括“奥运冠军杨倩被奖励1600万”等
  6. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分
  7. silverlight3:(ItemControl 的)UI Virtualization
  8. 谷歌死磕亚马逊,CES 舞台上的语音入口争夺战
  9. ABP源码分析二十八:ABP.MemoryDB
  10. EasyGame网络游戏服务器解决方案
  11. Netlogo入门(二)
  12. 利用华为DTM将事件发送到Firebase
  13. 给图片添加指示箭头或者选中效果
  14. 西湖论剑2020writeup
  15. 企业微信获取企业凭证全流程
  16. the info.plist in the package must contain the CFBundleShortVersionString key.
  17. python练习15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
  18. 互联网人养娃 真就和别人不一样
  19. c语言怎么打开mp4格式错误,c语言怎么播放MP4?
  20. Oracle触发器分类及使用

热门文章

  1. oracle表数据误删恢复
  2. cnil在python_在Python中使用cumprod()计算权益曲线
  3. 计算氦原子的基态能级
  4. lopa分析_【风险分析方法】HAZOP、LOPA和FMEA三种分析方法,如何做到信息共享?...
  5. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第9章-结论与展望
  6. 4.1 陷入不归路的调试-机器学习笔记-斯坦福吴恩达教授
  7. STM32 电机教程 12 - BLDC 闭环电流控制
  8. LTE 中的RV版本
  9. Android学习笔记:ScrollView卷轴视图
  10. Python whl文件制作简介