一般,在项目中,我们会会经常使用到日期的各种方式的处理,在各个业务逻辑操作中,都需要相关的日期操作,因此,实现项目中的日期工具类的提出,还是十分重要的,下面,就项目中常用到的日期的相关操作方式,做了一个小的工具类,方便项目使用,也方便以后的复用和查询.下面见代码:

  1. /**
  2. *
  3. * 〈一句话功能简述〉<br>
  4. * 〈功能详细描述〉 日期工具类
  5. *
  6. * @author 12061799
  7. * @see [相关类/方法](可选)
  8. * @since [产品/模块版本] (可选)
  9. */
  10. public class DateUtil {
  11.  
  12. // 日期格式 年.
  13. public static final String YEAR_FORMAT = "yyyy";
  14.  
  15. // 默认日期格式.
  16. public static final String DEFALT_DATE_FORMAT = "yyyy-MM-dd";
  17.  
  18. // 默认时间格式.带时分秒
  19. public static final String DEFUALT_TIMESTAMPE_FORMAT = "yyyy-MM-dd hh:mm:ss sss";
  20.  
  21. // 时间格式yyyyMMddHHmmssSSS.
  22. public static final String DATE_FORMATE_YYYYMMDDHHMMSSSSS = "yyyyMMddHHmmssSSS";
  23.  
  24. // 时间格式yyyy-MM-dd HH:mm:ss.
  25. public static final String DATE_FORMATE_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";
  26.  
  27. // 时间格式yyMMdd.
  28. public static final String DATE_FORMATE_YYMMDD = "yyMMdd";
  29.  
  30. // 时间格式DATE_FORMATE_YYYYMMDD.
  31. public static final String DATE_FORMATE_YYYYMMDD = "yyyyMMdd";
  32.  
  33. // 时间格式yyyyMMddHHmmssSSS.
  34. public static final String DATE_FORMATE_YYMMDDHHMMSS = "yyMMddHHmmss";
  35.  
  36. /**
  37. * private constructor
  38. */
  39. private DateUtil() {
  40.  
  41. }
  42.  
  43. /**
  44. * 取得现在时间.
  45. *
  46. * @return 现在时间
  47. */
  48. public static String getCurrentSqlTimestampString() {
  49. Date today = new Date();
  50. SimpleDateFormat sdf = new SimpleDateFormat(DEFUALT_TIMESTAMPE_FORMAT);
  51. return sdf.format(today);
  52. }
  53.  
  54. /**
  55. * 取得指定格式的时间格式字符串
  56. *
  57. * @return 现在时间
  58. */
  59. public static String getDateStringByFormat(String format) {
  60. Date today = new Date();
  61. SimpleDateFormat sdf = new SimpleDateFormat(format);
  62. return sdf.format(today);
  63. }
  64.  
  65. /**
  66. * 将传入的时间转换为指定时间格式字符串.
  67. *
  68. * @param time 传入时间
  69. * @param dateFormat 时间格式
  70. * @return 时间字符串
  71. */
  72. public static String formatTimeStamp(Timestamp time, String dateFormat) {
  73. if (time == null) {
  74. return "";
  75. }
  76.  
  77. SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
  78. return sdf.format(time);
  79. }
  80.  
  81. /**
  82. * 取得现在时间.
  83. *
  84. * @return 现在时间
  85. */
  86. public static Timestamp getCurrentSqlTimestamp() {
  87. return new Timestamp(System.currentTimeMillis());
  88. }
  89.  
  90. /**
  91. * 取得今天日期字符串.
  92. *
  93. * @return 今天日期字符串
  94. */
  95. public static String getCurrentDay() {
  96. Date today = new Date();
  97. SimpleDateFormat sdf = new SimpleDateFormat(DEFALT_DATE_FORMAT);
  98. return sdf.format(today);
  99. }
  100.  
  101. /**
  102. * 取得今天日期+时间字符串.
  103. *
  104. * @return 今天日期字符串 YYYY-MM-dd HH:mm:ss
  105. */
  106. public static String getCurrentDayTime() {
  107. Date today = new Date();
  108. SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMATE_YYYYMMDDHHMMSS);
  109. return sdf.format(today);
  110. }
  111.  
  112. /**
  113. * 将传入的时间转换为默认时间格式字符串.
  114. *
  115. * @param time 传入时间
  116. * @return 时间字符串
  117. */
  118. public static String formatTimeStampDefualt(Timestamp time) {
  119. if (time == null) {
  120. return "";
  121. }
  122. SimpleDateFormat sdf = new SimpleDateFormat(DEFUALT_TIMESTAMPE_FORMAT);
  123. return sdf.format(time);
  124. }
  125.  
  126. /**
  127. * 将传入日期转换为默认格式字符串.
  128. *
  129. * @param date 传入日期
  130. * @return 日期字符串
  131. */
  132. public static String formatDateDefault(Date date) {
  133. if (date == null) {
  134. return null;
  135. }
  136. SimpleDateFormat sdf = new SimpleDateFormat(DEFALT_DATE_FORMAT);
  137. return sdf.format(date);
  138. }
  139.  
  140. /**
  141. * 功能描述: 根据指定的格式化规则返回当前日期
  142. *
  143. * @param string
  144. * @return [相关类/方法](可选)
  145. * @since [产品/模块版本](可选)
  146. */
  147. public static String getCurrentDate(String formater) {
  148. SimpleDateFormat format = new SimpleDateFormat(formater);
  149. return format.format(new Date());
  150. }
  151.  
  152. /**
  153. * 将传入日期转换为指定格式字符串.
  154. *
  155. * @param date 传入日期
  156. * @param dateFormat 时间格式
  157. * @return 日期字符串
  158. */
  159. public static String formatDateByDateFormate(Date date, String dateFormat) {
  160. if (date == null) {
  161. return null;
  162. }
  163.  
  164. SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
  165. return sdf.format(date);
  166. }
  167.  
  168. /**
  169. * 取得当前年 .
  170. *
  171. * @return 当前年
  172. */
  173. public static String getCurrentYear() {
  174. Date today = new Date();
  175. SimpleDateFormat sdf = new SimpleDateFormat(YEAR_FORMAT);
  176. return sdf.format(today);
  177. }
  178.  
  179. public static Date formatDate(String date) throws ParseException {
  180. DateFormat df = new SimpleDateFormat(DEFALT_DATE_FORMAT);
  181. return df.parse(date);
  182. }
  183.  
  184. /**
  185. *
  186. * 功能描述: <br>
  187. * 计算距今天指定天数的日期
  188. *
  189. * @param days
  190. * @return
  191. * @since 20130630
  192. */
  193. public static String getDateAfterDays(int days) {
  194. Calendar date = Calendar.getInstance();// today
  195. date.add(Calendar.DATE, days);
  196. SimpleDateFormat simpleDate = new SimpleDateFormat(DEFALT_DATE_FORMAT);
  197. return simpleDate.format(date.getTime());
  198. }
  199.  
  200. /**
  201. * 在指定的日期的前几天或后几天
  202. *
  203. * @param source 源日期(yyyy-MM-dd)
  204. * @param days 指定的天数,正负皆可
  205. * @return
  206. * @throws ParseException
  207. */
  208. public static String addDays(String source, int days) {
  209. Date date = null;
  210. try {
  211. date = formatDate(source);
  212. } catch (ParseException e) {
  213. }
  214. Calendar calendar = Calendar.getInstance();
  215. calendar.setTime(date);
  216. calendar.add(Calendar.DATE, days);
  217. SimpleDateFormat dateFormat = new SimpleDateFormat(DEFALT_DATE_FORMAT);
  218. return dateFormat.format(calendar.getTime());
  219. }
  220.  
  221. /**
  222. *
  223. * 功能描述: <br>
  224. * 〈功能详细描述〉校验正确的日期格式
  225. *
  226. * @param str
  227. * @return
  228. * @see [相关类/方法](可选)
  229. * @since [产品/模块版本](可选)
  230. */
  231. public static boolean isValidDate(String str, String format) {
  232. boolean convertSuccess = true;
  233. // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
  234. SimpleDateFormat sf = new SimpleDateFormat(format);
  235. try {
  236. // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
  237. sf.setLenient(false);
  238. sf.parse(str);
  239. } catch (ParseException e) {
  240. // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
  241. convertSuccess = false;
  242. }
  243. return convertSuccess;
  244. }
  245.  
  246. /**
  247. *
  248. * 功能描述: <br>
  249. * 〈功能详细描述〉计算时间相隔的天数
  250. *
  251. * @param beginDateStr
  252. * @param endDateStr
  253. * @return
  254. * @see [相关类/方法](可选)
  255. * @since [产品/模块版本](可选)
  256. */
  257. public static long getDaySub(String beginDateStr, String endDateStr) {
  258. long day = 0;
  259. SimpleDateFormat format = new SimpleDateFormat(DateUtil.DEFALT_DATE_FORMAT);
  260. Date beginDate;
  261. Date endDate;
  262. try {
  263. beginDate = format.parse(beginDateStr);
  264. endDate = format.parse(endDateStr);
  265. day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);
  266. } catch (ParseException e) {
  267. throw new RuntimeException("传入日期参数有误!",e);
  268. }
  269. return day;
  270. }
  271. }

工具类中的方法,一般都是定义成共有的静态防范,方便其他的业务的注入工具类,调用类的方法.注意:

1,首先定义了一系列的日期格式字符串,方便获取任意的格式的时间字符串

2,定义了一些操作方法,方便获取时间信息,以及一些计算操作,

3.静态的方法,直接使用类名调用即可,非常适用项目中的实时调用.

JAVA 日期工具类的总结的更多相关文章

  1. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  2. java日期工具类DateUtil-续一

    上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...

  3. java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  4. java日期工具类DateUtil

    一名优秀的程序员,不仅需要有着丰富解决问题的方案,还需要的便是代码的沉淀,这不仅有助于自己快速的开发程序,也有利于保证程序的健壮.那如何才能沉淀自己的”代码“呢?从自己编写util开始其实就是一个不错 ...

  5. java 日期工具类DateUtils

      日期工具类DateUtils CreateTime--2017年5月27日08:48:00Author:Marydon DateUtils.java-对日期类的进一步封装 import java. ...

  6. Java 日期工具类(日期,月份加减等)--转

    package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.C ...

  7. java 日期工具类

    import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...

  8. java日期工具类(Long型,Date型,yyyyMMdd型)等

    import java.sql.Timestamp; import java.text.ParsePosition; import java.text.SimpleDateFormat; import ...

  9. Java 日期格式化,Java 日期工具类,Java Date工具类

    ================================ ©Copyright 蕃薯耀 2020-01-19 https://www.cnblogs.com/fanshuyao/ import ...

随机推荐

  1. C# window服务操作

    public int GetWindowsServiceStartType(String sServiceName) //判断服务状态是手动还是禁用还是自动 { string sState = &qu ...

  2. Juery实现选项卡

    选项卡是一种很常用的组件.比如3个选项的选项卡,比较笨的一种办法是,把3个状态写成3个独立页面,互相链接.这样做的问题也显而易见,切换的时候url会变.如果是手机端网页,加载慢一点,给人的感觉是不断的 ...

  3. 了解http协议

    http:超文本传输协议 https:安全超文本传输协议 FTP:文件传输协议 TCP:网络控制协议 IP:互联网协议 UDP:用户数据协议 https协议特点-------------------- ...

  4. 用CSS来控制字符长度和显示长度

    在网页排版设计中,会遇到文本超过固定长度导致整体的网页变形的情况.程序员往往需要截取固定的长度来实现某些固定长度的控制.介绍一种直接采 用CSS的代码控制来实现文本截取的方法,与程序员的直接字符截取的 ...

  5. PHP中调用Soap/WebService

    关于在PHP中如何调用Soap/WebService的描述,网络上有不少帖子.但是主要讲述了如何用PHP开发服务器端.客户端并加以关联,而很少触及在PHP中调用现成的WebService的情况.在本文 ...

  6. webpack使用中遇到的相关问题

    问题一:使用webpack打包jquery后,在页面使用错误信息:$ is not defined new webpack.ProvidePlugin({ "$": "j ...

  7. 经纬度计算两点间的距离,根据距离排序SQL

    #java的Utilspublic class DistanceUtil { // 地球平均半径 private static final double EARTH_RADIUS = 6378137; ...

  8. 【codeforces 803C】Maximal GCD

    [题目链接]:http://codeforces.com/contest/803/problem/C [题意] 给你一个数字n;一个数字k; 让你找一个长度为k的序列; 要求这个长度为k的序列的所有数 ...

  9. rabbitMQ学习笔记(一)Windows 与Linux下rabbitMQ的安装

    版权声明:本文为博主原创文章,未经博主允许不得转载. Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definiti ...

  10. HDU 4350

    最近这些天,确实很烦恼.因为发现自己好像无论怎么样努力,也赶不上那些强校的学生.不得不承认,我们是传统弱校了.停了有一周了,什么也不想写,不停的反思,到底自己在哪里比不上人.D说,那是因为自始至终你只 ...