HGLDateUtils.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package cn.com.lzt.tools;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. public class HGLDateUtils {
  6. // 获得当天0点时间
  7. public static Date getTimesmorning() {
  8. Calendar cal = Calendar.getInstance();
  9. cal.set(Calendar.HOUR_OF_DAY, 0);
  10. cal.set(Calendar.SECOND, 0);
  11. cal.set(Calendar.MINUTE, 0);
  12. cal.set(Calendar.MILLISECOND, 0);
  13. return cal.getTime();
  14. }
  15. // 获得昨天0点时间
  16. public static Date getYesterdaymorning() {
  17. Calendar cal = Calendar.getInstance();
  18. cal.setTimeInMillis(getTimesmorning().getTime()-3600*24*1000);
  19. return cal.getTime();
  20. }
  21. // 获得当天近7天时间
  22. public static Date getWeekFromNow() {
  23. Calendar cal = Calendar.getInstance();
  24. cal.setTimeInMillis( getTimesmorning().getTime()-3600*24*1000*7);
  25. return cal.getTime();
  26. }
  27. // 获得当天24点时间
  28. public static Date getTimesnight() {
  29. Calendar cal = Calendar.getInstance();
  30. cal.set(Calendar.HOUR_OF_DAY, 24);
  31. cal.set(Calendar.SECOND, 0);
  32. cal.set(Calendar.MINUTE, 0);
  33. cal.set(Calendar.MILLISECOND, 0);
  34. return cal.getTime();
  35. }
  36. // 获得本周一0点时间
  37. public static Date getTimesWeekmorning() {
  38. Calendar cal = Calendar.getInstance();
  39. cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  40. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  41. return cal.getTime();
  42. }
  43. // 获得本周日24点时间
  44. public static Date getTimesWeeknight() {
  45. Calendar cal = Calendar.getInstance();
  46. cal.setTime(getTimesWeekmorning());
  47. cal.add(Calendar.DAY_OF_WEEK, 7);
  48. return cal.getTime();
  49. }
  50. // 获得本月第一天0点时间
  51. public static Date getTimesMonthmorning() {
  52. Calendar cal = Calendar.getInstance();
  53. cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  54. cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
  55. return cal.getTime();
  56. }
  57. // 获得本月最后一天24点时间
  58. public static Date getTimesMonthnight() {
  59. Calendar cal = Calendar.getInstance();
  60. cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  61. cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
  62. cal.set(Calendar.HOUR_OF_DAY, 24);
  63. return cal.getTime();
  64. }
  65. public static Date getLastMonthStartMorning() {
  66. Calendar cal = Calendar.getInstance();
  67. cal.setTime(getTimesMonthmorning());
  68. cal.add(Calendar.MONTH, -1);
  69. return cal.getTime();
  70. }
  71. public static Date getCurrentQuarterStartTime() {
  72. Calendar c = Calendar.getInstance();
  73. int currentMonth = c.get(Calendar.MONTH) + 1;
  74. SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  75. SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
  76. Date now = null;
  77. try {
  78. if (currentMonth >= 1 && currentMonth <= 3)
  79. c.set(Calendar.MONTH, 0);
  80. else if (currentMonth >= 4 && currentMonth <= 6)
  81. c.set(Calendar.MONTH, 3);
  82. else if (currentMonth >= 7 && currentMonth <= 9)
  83. c.set(Calendar.MONTH, 6);
  84. else if (currentMonth >= 10 && currentMonth <= 12)
  85. c.set(Calendar.MONTH, 9);
  86. c.set(Calendar.DATE, 1);
  87. now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
  88. } catch (Exception e) {
  89. e.printStackTrace();
  90. }
  91. return now;
  92. }
  93. /**
  94. * 当前季度的结束时间,即2012-03-31 23:59:59
  95. *
  96. * @return
  97. */
  98. public static Date getCurrentQuarterEndTime() {
  99. Calendar cal = Calendar.getInstance();
  100. cal.setTime(getCurrentQuarterStartTime());
  101. cal.add(Calendar.MONTH, 3);
  102. return cal.getTime();
  103. }
  104. public static Date getCurrentYearStartTime() {
  105. Calendar cal = Calendar.getInstance();
  106. cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  107. cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.YEAR));
  108. return cal.getTime();
  109. }
  110. public static Date getCurrentYearEndTime() {
  111. Calendar cal = Calendar.getInstance();
  112. cal.setTime(getCurrentYearStartTime());
  113. cal.add(Calendar.YEAR, 1);
  114. return cal.getTime();
  115. }
  116. public static Date getLastYearStartTime() {
  117. Calendar cal = Calendar.getInstance();
  118. cal.setTime(getCurrentYearStartTime());
  119. cal.add(Calendar.YEAR, -1);
  120. return cal.getTime();
  121. }
  122. //返回的是字符串型的时间,输入的
  123. //是String day, int x
  124. public static String addDateMinut(String day, int x)
  125. {
  126. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  127. // 24小时制
  128. // 引号里面个格式也可以是 HH:mm:ss或者HH:mm等等,很随意的,不过在主函数调用时,要和输入的变
  129. // 量day格式一致
  130. Date date = null;
  131. try {
  132. date = format.parse(day);
  133. } catch (Exception ex) {
  134. ex.printStackTrace();
  135. }
  136. if (date == null)
  137. return "";
  138. Calendar cal = Calendar.getInstance();
  139. cal.setTime(date);
  140. cal.add(Calendar.MINUTE, x);// 24小时制
  141. date = cal.getTime();
  142. cal = null;
  143. return format.format(date);
  144. }
  145. //返回的是字符串型的时间,输入的
  146. // 是String day, int x
  147. public static String addDateMonth(String month, int x)
  148. {
  149. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  150. SimpleDateFormat monthformat = new SimpleDateFormat("yyyy-MM");
  151. // 24小时制
  152. // 引号里面个格式也可以是 HH:mm:ss或者HH:mm等等,很随意的,不过在主函数调用时,要和输入的变
  153. // 量day格式一致
  154. Date date = null;
  155. try {
  156. date = format.parse(month + "-01 00:00:00");
  157. } catch (Exception ex) {
  158. ex.printStackTrace();
  159. }
  160. if (date == null)
  161. return "";
  162. Calendar cal = Calendar.getInstance();
  163. cal.setTime(date);
  164. cal.add(Calendar.MONTH, x);// 24小时制
  165. date = cal.getTime();
  166. cal = null;
  167. return monthformat.format(date);
  168. }
  169. //返回的是字符串型的时间,输入的
  170. // 是String day, int x
  171. public static String addDateDay(String day, int x ,SimpleDateFormat format)
  172. {
  173. if(format == null) {
  174. format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  175. }
  176. // 24小时制
  177. // 引号里面个格式也可以是 HH:mm:ss或者HH:mm等等,很随意的,不过在主函数调用时,要和输入的变
  178. // 量day格式一致
  179. Date date = null;
  180. try {
  181. date = format.parse(day.length() > 10 ? day : day+" 00:00:00");
  182. } catch (Exception ex) {
  183. ex.printStackTrace();
  184. }
  185. if (date == null)
  186. return "";
  187. Calendar cal = Calendar.getInstance();
  188. cal.setTime(date);
  189. cal.add(Calendar.DATE, x);// 24小时制
  190. date = cal.getTime();
  191. cal = null;
  192. return format.format(date);
  193. }
  194. }