DateUtil.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. package com.huimv.admin.common.utils;
  2. import cn.hutool.core.date.DateTime;
  3. import org.springframework.stereotype.Component;
  4. import java.sql.Timestamp;
  5. import java.text.ParseException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.ArrayList;
  8. import java.util.Calendar;
  9. import java.util.Date;
  10. import java.util.List;
  11. /**
  12. * @Project : huimv.shiwan
  13. * @Package : com.huimv.biosafety.uface.controller
  14. * @Description : TODO
  15. * @Version : 1.0
  16. * @Author : ZhuoNing
  17. * @Create : 2020-12-25
  18. **/
  19. @Component
  20. //@Slf4j
  21. public class DateUtil {
  22. public int getNowHour(){
  23. Calendar cal = Calendar.getInstance();
  24. return cal.get(Calendar.HOUR_OF_DAY);
  25. }
  26. public int setCalendarNewTime(String newTime) throws ParseException {
  27. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
  28. Calendar cal = Calendar.getInstance();
  29. cal.setTime(sdf.parse(newTime));
  30. return cal.get(Calendar.HOUR_OF_DAY);
  31. }
  32. public int setCalendarNewTime(Timestamp newTime) throws ParseException {
  33. Calendar cal = Calendar.getInstance();
  34. cal.setTime(newTime);
  35. return cal.get(Calendar.HOUR_OF_DAY);
  36. }
  37. //格式化日期(Long --> Date)
  38. public String formatLongToDate(Long longDate){
  39. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  40. Date date= new Date(longDate);
  41. return df.format(date);
  42. }
  43. //格式化本年
  44. public String getThisYear(){
  45. Calendar cal = Calendar.getInstance();
  46. int year = cal.get(Calendar.YEAR);
  47. return String.valueOf(year);
  48. }
  49. //格式化本月
  50. public String getThisMonth(){
  51. Calendar cal = Calendar.getInstance();
  52. int month = cal.get(Calendar.MONTH) + 1;
  53. if(String.valueOf(month).length()==1)
  54. {
  55. return "0"+String.valueOf(month);
  56. }else{
  57. return String.valueOf(month);
  58. }
  59. }
  60. //格式化日期时间
  61. public String formatDateTime(String dateText) throws ParseException {
  62. if(dateText.indexOf("T") != -1){
  63. dateText = dateText.replace("T"," ");
  64. }
  65. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  66. Date date = sdf.parse(dateText);
  67. return sdf.format(date);
  68. }
  69. //格式化日期时间
  70. public String formatDateText(String dateText) throws ParseException {
  71. if(dateText.indexOf("T") != -1){
  72. dateText = dateText.replace("T"," ");
  73. }
  74. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  75. Date date = sdf.parse(dateText);
  76. return sdf.format(date);
  77. }
  78. // public String formatDateText(Date date) throws ParseException {
  79. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  80. // return sdf.format(date);
  81. // }
  82. public Date parseDateTime(String dateText) throws ParseException {
  83. if(dateText.indexOf("T") != -1){
  84. dateText = dateText.replace("T"," ");
  85. }
  86. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  87. return sdf.parse(dateText);
  88. }
  89. public Date parseDate(String dateText) throws ParseException {
  90. if(dateText.indexOf("T") != -1){
  91. dateText = dateText.replace("T"," ");
  92. }
  93. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  94. return sdf.parse(dateText);
  95. }
  96. public Long parseDateTimeTextToLong(String dateText) throws ParseException {
  97. if(dateText.indexOf("T") != -1){
  98. dateText = dateText.replace("T"," ");
  99. }
  100. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  101. Date date = sdf.parse(dateText);
  102. return date.getTime();
  103. }
  104. public Long parseDateTextToLong(String dateText) throws ParseException {
  105. if(dateText.indexOf("T") != -1){
  106. dateText = dateText.replace("T"," ");
  107. }
  108. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  109. Date date = sdf.parse(dateText);
  110. return date.getTime();
  111. }
  112. //
  113. public Date getTodayDate() throws ParseException {
  114. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  115. return sdf.parse(sdf.format(new Date()));
  116. }
  117. public Date getTodayDatetime() throws ParseException {
  118. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  119. return sdf.parse(sdf.format(new Date()));
  120. }
  121. public String getTodayDateText() throws ParseException {
  122. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  123. return sdf.format(new Date());
  124. }
  125. public java.sql.Date getTodayMySQLDate(){
  126. java.sql.Date todayDate = new java.sql.Date(new Date().getTime());
  127. return todayDate;
  128. }
  129. public Timestamp getTimestamp(){
  130. Timestamp nowTimestamp = new Timestamp(new Date().getTime());
  131. return nowTimestamp;
  132. }
  133. public String getTodayText() throws ParseException {
  134. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  135. return sdf.format(new Date());
  136. }
  137. public String formatDateText(Date date) throws ParseException {
  138. if(date == null){
  139. return "";
  140. }
  141. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  142. return sdf.format(date);
  143. }
  144. public String formatDatetimeText(Date date) throws ParseException {
  145. if(date == null || date.toString().length()==0){
  146. return "";
  147. }
  148. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  149. return sdf.format(date);
  150. }
  151. public String getNowText() throws ParseException {
  152. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
  153. return sdf.format(new Date());
  154. }
  155. public String getTodayMissionText() throws ParseException {
  156. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
  157. return sdf.format(new Date());
  158. }
  159. public String getStartDateInThisMonth(){
  160. DateTime date = cn.hutool.core.date.DateUtil.date();
  161. return (cn.hutool.core.date.DateUtil.beginOfMonth(date) + "").substring(0, 10);
  162. }
  163. public String getEndDateInThisMonth(){
  164. DateTime date = cn.hutool.core.date.DateUtil.date();
  165. return (date + "").substring(0, 10);
  166. }
  167. /**
  168. * 获取过去或者未来 任意天内的日期数组
  169. * @param intervals intervals天内
  170. * @return 日期数组
  171. */
  172. public ArrayList<String> test(int intervals ) {
  173. ArrayList<String> pastDaysList = new ArrayList<>();
  174. ArrayList<String> fetureDaysList = new ArrayList<>();
  175. for (int i = 0; i <intervals; i++) {
  176. pastDaysList.add(getPastDate(i));
  177. fetureDaysList.add(getFetureDate(i));
  178. }
  179. return pastDaysList;
  180. }
  181. /**
  182. * @Method : getPastIntervals
  183. * @Description : 返回过去N天日期(倒排序)
  184. * @Params : [intervals]
  185. * @Return : java.util.ArrayList<java.lang.String>
  186. *
  187. * @Author : ZhuoNing
  188. * @Date : 2022/3/7
  189. * @Time : 15:27
  190. */
  191. public ArrayList<String> getPastIntervals(int intervals ) {
  192. ArrayList<String> pastDaysList = new ArrayList<>();
  193. for (int i = 0; i <intervals; i++) {
  194. pastDaysList.add(getPastDate(i));
  195. }
  196. return pastDaysList;
  197. }
  198. /**
  199. * @Method : getPastIntervalsASC
  200. * @Description : 正排序
  201. * @Params : [intervals]
  202. * @Return : java.util.ArrayList<java.lang.String>
  203. *
  204. * @Author : ZhuoNing
  205. * @Date : 2022/3/7
  206. * @Time : 16:33
  207. */
  208. public ArrayList<String> getPastIntervalsASC(int intervals ) {
  209. ArrayList<String> pastDaysList = new ArrayList<>();
  210. for (int i = intervals-1; i >=0; i--) {
  211. pastDaysList.add(getPastDate(i));
  212. }
  213. return pastDaysList;
  214. }
  215. /**
  216. * @Method : getFetureIntervals
  217. * @Description : 获取未来N天日期
  218. * @Params : [intervals]
  219. * @Return : java.util.ArrayList<java.lang.String>
  220. *
  221. * @Author : ZhuoNing
  222. * @Date : 2022/3/7
  223. * @Time : 15:28
  224. */
  225. public ArrayList<String> getFetureIntervals(int intervals ) {
  226. ArrayList<String> fetureDaysList = new ArrayList<>();
  227. for (int i = 0; i <intervals; i++) {
  228. fetureDaysList.add(getFetureDate(i));
  229. }
  230. return fetureDaysList;
  231. }
  232. /**
  233. * 获取过去第几天的日期
  234. *
  235. * @param past
  236. * @return
  237. */
  238. public String getPastDate(int past) {
  239. Calendar calendar = Calendar.getInstance();
  240. calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
  241. Date today = calendar.getTime();
  242. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  243. String result = format.format(today);
  244. return result;
  245. }
  246. /**
  247. * 获取未来 第 past 天的日期
  248. * @param past
  249. * @return
  250. */
  251. public String getFetureDate(int past) {
  252. Calendar calendar = Calendar.getInstance();
  253. calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + past);
  254. Date today = calendar.getTime();
  255. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  256. String result = format.format(today);
  257. return result;
  258. }
  259. //重新构建日期
  260. public String rebuildDateTime(String text){
  261. return text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
  262. }
  263. public static void main(String[] args){
  264. DateUtil du = new DateUtil();
  265. //
  266. // du.test1();
  267. List<String> pastList = du.getPastIntervalsASC(5);
  268. for(String pastDate:pastList){
  269. System.out.println("pastDate>>"+pastDate);
  270. }
  271. List<String> fetureList = du.getFetureIntervals(5);
  272. for(String fetureDate:fetureList){
  273. System.out.println("fetureDate>>"+fetureDate);
  274. }
  275. }
  276. private void test1() {
  277. String text = "20211201104300";
  278. // String text = "1234567890abcd";
  279. String date = text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
  280. System.out.println("date="+date);
  281. }
  282. //获取long时间
  283. public Long getNowLong(){
  284. Calendar calendar = Calendar.getInstance();
  285. calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)-1,0,0,0);
  286. return calendar.getTime().getTime();
  287. }
  288. }