DateUtils.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package com.huimv.management.util;
  2. import java.text.DateFormat;
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.util.Locale;
  8. /**
  9. * 日期转换工具
  10. * @author guojian
  11. */
  12. public class DateUtils {
  13. public static final String DATE_FORMAT = "yyyy-MM-dd";
  14. public static final String DATE_FORMAT_NUMBER = "yyyyMMdd";
  15. public static final String DATE_FORMAT_NUMBER_MONTH = "yyyyMM";
  16. public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
  17. public static final String TIME_FORMAT = "HH:mm:ss";
  18. public static final String GREENWICH_TIME = "1970-01-01 00:00:00";
  19. public static String formatDate(Date date, String pattern) {
  20. SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  21. try {
  22. return sdf.format(date);
  23. } catch (Exception e) {
  24. return null;
  25. }
  26. }
  27. //过去五秒
  28. public static Date getPassedsecond(){
  29. Calendar c = Calendar.getInstance();
  30. c.setTime(new Date());
  31. c.add(Calendar.SECOND, - 5);
  32. return c.getTime();
  33. }
  34. public static String stampToTime(String s) throws Exception{
  35. String res;
  36. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  37. long lt = new Long(s);
  38. //将时间戳转换为时间
  39. Date date = new Date(lt);
  40. //将时间调整为yyyy-MM-dd HH:mm:ss时间样式
  41. res = simpleDateFormat.format(date);
  42. return res;
  43. }
  44. public static Date parseDate(String dateStr, String pattern) {
  45. SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  46. try {
  47. return sdf.parse(dateStr);
  48. } catch (Exception e) {
  49. return null;
  50. }
  51. }
  52. //过去一天
  53. public static Date getPassedDay(){
  54. Calendar c = Calendar.getInstance();
  55. c.setTime(new Date());
  56. c.add(Calendar.HOUR, - 1);
  57. return c.getTime();
  58. }
  59. //过去七天
  60. public static Date getPassedWeek(){
  61. SimpleDateFormat format = new SimpleDateFormat(DATETIME_FORMAT);
  62. Calendar c = Calendar.getInstance();
  63. c.setTime(new Date());
  64. c.add(Calendar.DATE, - 7);
  65. return c.getTime();
  66. }
  67. //过去三十天
  68. public static Date getPassedMonth(){
  69. Calendar c = Calendar.getInstance();
  70. c.setTime(new Date());
  71. c.add(Calendar.DATE, - 30);
  72. return c.getTime();
  73. }
  74. //指定时间的周一
  75. public static String getWeekFirstStr(Date time) {
  76. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
  77. return sdf.format(getThisWeekMonday(time));
  78. }
  79. //获取指定日期当月的第一天
  80. public static String getMonthFirstStr(Date time){
  81. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  82. Calendar calendar = Calendar.getInstance();
  83. calendar.setTime(time);
  84. calendar.set(Calendar.DAY_OF_MONTH, 1);
  85. calendar.add(Calendar.MONTH, 0);
  86. return sdf.format(calendar.getTime());
  87. }
  88. public static Date geLastWeekMonday(Date date) {
  89. Calendar cal = Calendar.getInstance();
  90. cal.setTime(getThisWeekMonday(date));
  91. cal.add(Calendar.DATE, -7);
  92. return cal.getTime();
  93. }
  94. public static Date getNextWeekMonday(Date date) {
  95. Calendar cal = Calendar.getInstance();
  96. cal.setTime(getThisWeekMonday(date));
  97. cal.add(Calendar.DATE, 7);
  98. return cal.getTime();
  99. }
  100. public static Date getThisWeekMonday(Date date) {
  101. Calendar cal = Calendar.getInstance();
  102. cal.setTime(date);
  103. // 获得当前日期是一个星期的第几天
  104. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
  105. if (1 == dayWeek) {
  106. cal.add(Calendar.DAY_OF_MONTH, -1);
  107. }
  108. // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
  109. cal.setFirstDayOfWeek(Calendar.MONDAY);
  110. // 获得当前日期是一个星期的第几天
  111. int day = cal.get(Calendar.DAY_OF_WEEK);
  112. // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
  113. cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
  114. return cal.getTime();
  115. }
  116. public static String getNowWithDigital() {
  117. Date now = new Date();
  118. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  119. return sdf.format(now).replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
  120. }
  121. public static String buildDateTimeString(String formatContent) {
  122. String year = formatContent.substring(0, 4);
  123. String month = formatContent.substring(4, 6);
  124. String day = formatContent.substring(6, 8);
  125. String hour = formatContent.substring(8, 10);
  126. String minute = formatContent.substring(10, 12);
  127. String seconds = formatContent.substring(12, 14);
  128. StringBuilder dateTimeSb = new StringBuilder();
  129. return dateTimeSb.append(year).append("-").append(month).append("-").append(day).append(" ").append(hour).append(":").append(minute).append(":").append(seconds).toString();
  130. }
  131. public static String buildDateString(String formatContent) {
  132. String year = formatContent.substring(0, 4);
  133. String month = formatContent.substring(4, 6);
  134. String day = formatContent.substring(6, 8);
  135. String dateTime = year + "-" + month + "-" + day;
  136. return dateTime;
  137. }
  138. public static String formatDateTime(String date) {
  139. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
  140. return sdf.format(date);
  141. }
  142. public static Date parseDateTime(String date) throws ParseException {
  143. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  144. return sdf.parse(date);
  145. }
  146. public String getToday() {
  147. DateFormat df3 = DateFormat.getDateInstance(2, Locale.CHINA);
  148. return df3.format(new Date());
  149. }
  150. public String formatDate(Date date) {
  151. DateFormat df3 = DateFormat.getDateInstance(2, Locale.CHINA);
  152. return df3.format(date);
  153. }
  154. public String beforeTime(int times) {
  155. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  156. Calendar calendar = Calendar.getInstance();
  157. calendar.set(11, calendar.get(11) - times);
  158. String endTime = sdf.format(calendar.getTime());
  159. System.out.println("提前3小时:" + endTime);
  160. return endTime;
  161. }
  162. }