DateUtil.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package com.post.excelUtil;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. public class DateUtil {
  7. //得到当前的时间
  8. public static Date getDate() {
  9. Calendar canlendar = Calendar.getInstance();
  10. return canlendar.getTime();
  11. }
  12. //提到指定的millis得到时间
  13. public static Date getDate(long millis) {
  14. Calendar canlendar = Calendar.getInstance();
  15. canlendar.clear();
  16. canlendar.setTimeInMillis(millis);
  17. return canlendar.getTime();
  18. }
  19. public static long getMillis() {
  20. return Calendar.getInstance().getTimeInMillis();
  21. }
  22. //得到指定日期的字符串(yyyy-MM-dd HH:mm:ss.SSS)
  23. public static String getDateFormate(Date date, String formate) {
  24. try {
  25. SimpleDateFormat simpleDateFormate = new SimpleDateFormat(formate);
  26. return simpleDateFormate.format(date);
  27. } catch (Exception e) {
  28. }
  29. return "";
  30. }
  31. //根据日期得到YYYY-MM-DD HH:MM:SS.SSS格式字符串
  32. public static String get4yMdHmsS(Date date) {
  33. return DateUtil.getDateFormate(date, "yyyy-MM-dd HH:mm:ss.SSS");
  34. }
  35. //根据日期得到YYYY-MM-DD HH:MM:SS格式字符串
  36. public static String get4yMdHms(Date date) {
  37. return DateUtil.getDateFormate(date, "yyyy-MM-dd HH:mm:ss");
  38. }
  39. //根据日期得到YYYY-MM-DD HH:MM格式字符串
  40. public static String get4yMdHm(Date date) {
  41. return DateUtil.getDateFormate(date, "yyyy-MM-dd HH:mm");
  42. }
  43. //根据日期得到YYYY-MM-DD格式字符串
  44. public static String get4yMd(Date date) {
  45. return DateUtil.getDateFormate(date, "yyyy-MM-dd");
  46. }
  47. //把指定字符(yyyy-MM-dd HH:mm:ss.SSS)串转成Date
  48. public static Date parse4yMdHmsS(String sDate) {
  49. return DateUtil.parseDate(sDate, "yyyy-MM-dd HH:mm:ss.SSS");
  50. }
  51. //把指定字符(yyyy-MM-dd HH:mm:ss)串转成Date
  52. public static Date parse4yMdHms(String sDate) {
  53. return DateUtil.parseDate(sDate, "yyyy-MM-dd HH:mm:ss");
  54. }
  55. //把指定字符(yyyy-MM-dd HH:mm)串转成Date
  56. public static Date parse4yMdHm(String sDate) {
  57. return DateUtil.parseDate(sDate, "yyyy-MM-dd HH:mm");
  58. }
  59. //把指定字符(yyyy-MM-dd)串转成Date
  60. public static Date parse4yMd(String sDate) {
  61. return DateUtil.parseDate(sDate, "yyyy-MM-dd");
  62. }
  63. //根据指定格式,把字符串转成日期
  64. public static Date parseDate(String sDate, String formate) {
  65. SimpleDateFormat simpleDateFormate = new SimpleDateFormat(formate);
  66. try {
  67. return simpleDateFormate.parse(sDate);
  68. } catch (ParseException e) {
  69. return null;
  70. }
  71. }
  72. //两个长整型的时间相差(时间的毫秒数),可以得到指定的毫秒数,秒数,分钟数,天数
  73. public static double getDifTwoTime(Date minuendTime, Date subtrahendTime, String tdatestr) {
  74. if (minuendTime == null || subtrahendTime != null) {
  75. return DateUtil.getDifTwoTime(minuendTime.getTime(), subtrahendTime.getTime(), tdatestr);
  76. }
  77. return 0;
  78. }
  79. //两个长整型的时间相差(时间的毫秒数),可以得到指定的毫秒数,秒数,分钟数,天数
  80. public static double getDifTwoTime(long minuendTime, long subtrahendTime, String tdatestr) {
  81. if (tdatestr == null || tdatestr.equals("")) {
  82. tdatestr = "MS";
  83. }
  84. double temp = 1;
  85. /** 毫秒数 */
  86. if ("MS".equalsIgnoreCase(tdatestr)) {
  87. temp = 1;
  88. }
  89. /** 得到秒 */
  90. if ("S".equalsIgnoreCase(tdatestr)) {
  91. temp = 1000;
  92. }
  93. /** 得到分 */
  94. if ("M".equalsIgnoreCase(tdatestr)) {
  95. temp = 1000 * 60;
  96. }
  97. /** 得到小时 */
  98. if ("H".equalsIgnoreCase(tdatestr)) {
  99. temp = 1000 * 60 * 60;
  100. }
  101. /** 得到天 */
  102. if ("D".equalsIgnoreCase(tdatestr)) {
  103. temp = 1000 * 60 * 60 * 24;
  104. }
  105. return (minuendTime - subtrahendTime) / temp;
  106. }
  107. //从日期中得到指定部分(YYYY/MM/DD/HH/SS/SSS)数字
  108. public static int getPartOfTime(Date date, String part) {
  109. Calendar canlendar = Calendar.getInstance();
  110. canlendar.clear();
  111. canlendar.setTime(date);
  112. if (part.equalsIgnoreCase("Y")) {//得到年
  113. return canlendar.get(Calendar.YEAR);
  114. }
  115. if (part.equalsIgnoreCase("M")) {//得到月
  116. return canlendar.get(Calendar.MONTH) + 1;
  117. }
  118. if (part.equalsIgnoreCase("D")) {//得到日
  119. return canlendar.get(Calendar.DAY_OF_MONTH);
  120. }
  121. if (part.equalsIgnoreCase("H")) {//得到时
  122. return canlendar.get(Calendar.HOUR_OF_DAY);
  123. }
  124. if (part.equalsIgnoreCase("M")) {//得到分
  125. return canlendar.get(Calendar.MINUTE);
  126. }
  127. if (part.equalsIgnoreCase("S")) {//得到秒
  128. return canlendar.get(Calendar.SECOND);
  129. }
  130. if (part.equalsIgnoreCase("MS")) {//得到毫秒
  131. return canlendar.get(Calendar.MILLISECOND);
  132. }
  133. return -1;
  134. }
  135. //从日期得到本年第一天日期
  136. public static Date getFirstDateOfCurYear(Date date){
  137. Calendar canlendar = Calendar.getInstance();
  138. canlendar.clear();
  139. canlendar.setTime(date);
  140. canlendar.set(canlendar.DAY_OF_YEAR,1);
  141. return canlendar.getTime();
  142. }
  143. //从日期得到上月最后一天日期
  144. public static Date getLastDateOfUpMonth(Date date){
  145. Calendar canlendar = Calendar.getInstance();
  146. canlendar.clear();
  147. canlendar.setTime(date);
  148. canlendar.set(canlendar.DAY_OF_MONTH, 1);
  149. canlendar.add(canlendar.DAY_OF_YEAR, -1);
  150. return canlendar.getTime();
  151. }
  152. //从xxxx年xx月得到本月第一天
  153. public static Date getFirst4y2M(String s){
  154. String y = s.substring(0, 4);
  155. String m = s.substring(5, 7);
  156. return DateUtil.parse4yMd(y+"-"+m+"-"+"01");
  157. }
  158. //从2014年01月得到本月最后一天
  159. public static Date getLast4y2M(String s){
  160. Calendar canlendar = Calendar.getInstance();
  161. canlendar.setTime(DateUtil.getFirst4y2M(s));
  162. canlendar.add(canlendar.MONTH, 1);
  163. canlendar.add(canlendar.DAY_OF_YEAR, -1);
  164. return canlendar.getTime();
  165. }
  166. //从xxxx年xx月得到本年第一天
  167. public static Date getYearFirst4y2M(String s){
  168. String y = s.substring(0, 4);
  169. return DateUtil.parse4yMd(y+"-"+"01"+"-"+"01");
  170. }
  171. //从xxxx年xx月得到本年最后一天
  172. public static Date getYearLast4y2M(String s){
  173. String y = s.substring(0, 4);
  174. return DateUtil.parse4yMd(y+"-"+"12"+"-"+"31");
  175. }
  176. }