前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

DateUtil类

[java] view plain copy
  1. package com.util;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. public class DateUtil {
  10. /**
  11. * 获取SimpleDateFormat
  12. * @param parttern 日期格式
  13. * @return SimpleDateFormat对象
  14. * @throws RuntimeException 异常:非法日期格式
  15. */
  16. private static SimpleDateFormat getDateFormat(String parttern) throws RuntimeException {
  17. return new SimpleDateFormat(parttern);
  18. }
  19. /**
  20. * 获取日期中的某数值。如获取月份
  21. * @param date 日期
  22. * @param dateType 日期格式
  23. * @return 数值
  24. */
  25. private static int getInteger(Date date, int dateType) {
  26. Calendar calendar = Calendar.getInstance();
  27. calendar.setTime(date);
  28. return calendar.get(dateType);
  29. }
  30. /**
  31. * 增加日期中某类型的某数值。如增加日期
  32. * @param date 日期字符串
  33. * @param dateType 类型
  34. * @param amount 数值
  35. * @return 计算后日期字符串
  36. */
  37. private static String addInteger(String date, int dateType, int amount) {
  38. String dateString = null;
  39. DateStyle dateStyle = getDateStyle(date);
  40. if (dateStyle != null) {
  41. Date myDate = StringToDate(date, dateStyle);
  42. myDate = addInteger(myDate, dateType, amount);
  43. dateString = DateToString(myDate, dateStyle);
  44. }
  45. return dateString;
  46. }
  47. /**
  48. * 增加日期中某类型的某数值。如增加日期
  49. * @param date 日期
  50. * @param dateType 类型
  51. * @param amount 数值
  52. * @return 计算后日期
  53. */
  54. private static Date addInteger(Date date, int dateType, int amount) {
  55. Date myDate = null;
  56. if (date != null) {
  57. Calendar calendar = Calendar.getInstance();
  58. calendar.setTime(date);
  59. calendar.add(dateType, amount);
  60. myDate = calendar.getTime();
  61. }
  62. return myDate;
  63. }
  64. /**
  65. * 获取精确的日期
  66. * @param timestamps 时间long集合
  67. * @return 日期
  68. */
  69. private static Date getAccurateDate(List<Long> timestamps) {
  70. Date date = null;
  71. long timestamp = 0;
  72. Map<Long, long[]> map = new HashMap<Long, long[]>();
  73. List<Long> absoluteValues = new ArrayList<Long>();
  74. if (timestamps != null && timestamps.size() > 0) {
  75. if (timestamps.size() > 1) {
  76. for (int i = 0; i < timestamps.size(); i++) {
  77. for (int j = i + 1; j < timestamps.size(); j++) {
  78. long absoluteValue = Math.abs(timestamps.get(i) - timestamps.get(j));
  79. absoluteValues.add(absoluteValue);
  80. long[] timestampTmp = { timestamps.get(i), timestamps.get(j) };
  81. map.put(absoluteValue, timestampTmp);
  82. }
  83. }
  84. // 有可能有相等的情况。如2012-11和2012-11-01。时间戳是相等的
  85. long minAbsoluteValue = -1;
  86. if (!absoluteValues.isEmpty()) {
  87. // 如果timestamps的size为2,这是差值只有一个,因此要给默认值
  88. minAbsoluteValue = absoluteValues.get(0);
  89. }
  90. for (int i = 0; i < absoluteValues.size(); i++) {
  91. for (int j = i + 1; j < absoluteValues.size(); j++) {
  92. if (absoluteValues.get(i) > absoluteValues.get(j)) {
  93. minAbsoluteValue = absoluteValues.get(j);
  94. else {
  95. minAbsoluteValue = absoluteValues.get(i);
  96. }
  97. }
  98. }
  99. if (minAbsoluteValue != -1) {
  100. long[] timestampsLastTmp = map.get(minAbsoluteValue);
  101. if (absoluteValues.size() > 1) {
  102. timestamp = Math.max(timestampsLastTmp[0], timestampsLastTmp[1]);
  103. else if (absoluteValues.size() == 1) {
  104. // 当timestamps的size为2,需要与当前时间作为参照
  105. long dateOne = timestampsLastTmp[0];
  106. long dateTwo = timestampsLastTmp[1];
  107. if ((Math.abs(dateOne - dateTwo)) < 100000000000L) {
  108. timestamp = Math.max(timestampsLastTmp[0], timestampsLastTmp[1]);
  109. else {
  110. long now = new Date().getTime();
  111. if (Math.abs(dateOne - now) <= Math.abs(dateTwo - now)) {
  112. timestamp = dateOne;
  113. else {
  114. timestamp = dateTwo;
  115. }
  116. }
  117. }
  118. }
  119. else {
  120. timestamp = timestamps.get(0);
  121. }
  122. }
  123. if (timestamp != 0) {
  124. date = new Date(timestamp);
  125. }
  126. return date;
  127. }
  128. /**
  129. * 判断字符串是否为日期字符串
  130. * @param date 日期字符串
  131. * @return true or false
  132. */
  133. public static boolean isDate(String date) {
  134. boolean isDate = false;
  135. if (date != null) {
  136. if (StringToDate(date) != null) {
  137. isDate = true;
  138. }
  139. }
  140. return isDate;
  141. }
  142. /**
  143. * 获取日期字符串的日期风格。失敗返回null。
  144. * @param date 日期字符串
  145. * @return 日期风格
  146. */
  147. public static DateStyle getDateStyle(String date) {
  148. DateStyle dateStyle = null;
  149. Map<Long, DateStyle> map = new HashMap<Long, DateStyle>();
  150. List<Long> timestamps = new ArrayList<Long>();
  151. for (DateStyle style : DateStyle.values()) {
  152. Date dateTmp = StringToDate(date, style.getValue());
  153. if (dateTmp != null) {
  154. timestamps.add(dateTmp.getTime());
  155. map.put(dateTmp.getTime(), style);
  156. }
  157. }
  158. dateStyle = map.get(getAccurateDate(timestamps).getTime());
  159. return dateStyle;
  160. }
  161. /**
  162. * 将日期字符串转化为日期。失败返回null。
  163. * @param date 日期字符串
  164. * @return 日期
  165. */
  166. public static Date StringToDate(String date) {
  167. DateStyle dateStyle = null;
  168. return StringToDate(date, dateStyle);
  169. }
  170. /**
  171. * 将日期字符串转化为日期。失败返回null。
  172. * @param date 日期字符串
  173. * @param parttern 日期格式
  174. * @return 日期
  175. */
  176. public static Date StringToDate(String date, String parttern) {
  177. Date myDate = null;
  178. if (date != null) {
  179. try {
  180. myDate = getDateFormat(parttern).parse(date);
  181. catch (Exception e) {
  182. }
  183. }
  184. return myDate;
  185. }
  186. /**
  187. * 将日期字符串转化为日期。失败返回null。
  188. * @param date 日期字符串
  189. * @param dateStyle 日期风格
  190. * @return 日期
  191. */
  192. public static Date StringToDate(String date, DateStyle dateStyle) {
  193. Date myDate = null;
  194. if (dateStyle == null) {
  195. List<Long> timestamps = new ArrayList<Long>();
  196. for (DateStyle style : DateStyle.values()) {
  197. Date dateTmp = StringToDate(date, style.getValue());
  198. if (dateTmp != null) {
  199. timestamps.add(dateTmp.getTime());
  200. }
  201. }
  202. myDate = getAccurateDate(timestamps);
  203. else {
  204. myDate = StringToDate(date, dateStyle.getValue());
  205. }
  206. return myDate;
  207. }
  208. /**
  209. * 将日期转化为日期字符串。失败返回null。
  210. * @param date 日期
  211. * @param parttern 日期格式
  212. * @return 日期字符串
  213. */
  214. public static String DateToString(Date date, String parttern) {
  215. String dateString = null;
  216. if (date != null) {
  217. try {
  218. dateString = getDateFormat(parttern).format(date);
  219. catch (Exception e) {
  220. }
  221. }
  222. return dateString;
  223. }
  224. /**
  225. * 将日期转化为日期字符串。失败返回null。
  226. * @param date 日期
  227. * @param dateStyle 日期风格
  228. * @return 日期字符串
  229. */
  230. public static String DateToString(Date date, DateStyle dateStyle) {
  231. String dateString = null;
  232. if (dateStyle != null) {
  233. dateString = DateToString(date, dateStyle.getValue());
  234. }
  235. return dateString;
  236. }
  237. /**
  238. * 将日期字符串转化为另一日期字符串。失败返回null。
  239. * @param date 旧日期字符串
  240. * @param parttern 新日期格式
  241. * @return 新日期字符串
  242. */
  243. public static String StringToString(String date, String parttern) {
  244. return StringToString(date, null, parttern);
  245. }
  246. /**
  247. * 将日期字符串转化为另一日期字符串。失败返回null。
  248. * @param date 旧日期字符串
  249. * @param dateStyle 新日期风格
  250. * @return 新日期字符串
  251. */
  252. public static String StringToString(String date, DateStyle dateStyle) {
  253. return StringToString(date, null, dateStyle);
  254. }
  255. /**
  256. * 将日期字符串转化为另一日期字符串。失败返回null。
  257. * @param date 旧日期字符串
  258. * @param olddParttern 旧日期格式
  259. * @param newParttern 新日期格式
  260. * @return 新日期字符串
  261. */
  262. public static String StringToString(String date, String olddParttern, String newParttern) {
  263. String dateString = null;
  264. if (olddParttern == null) {
  265. DateStyle style = getDateStyle(date);
  266. if (style != null) {
  267. Date myDate = StringToDate(date, style.getValue());
  268. dateString = DateToString(myDate, newParttern);
  269. }
  270. else {
  271. Date myDate = StringToDate(date, olddParttern);
  272. dateString = DateToString(myDate, newParttern);
  273. }
  274. return dateString;
  275. }
  276. /**
  277. * 将日期字符串转化为另一日期字符串。失败返回null。
  278. * @param date 旧日期字符串
  279. * @param olddDteStyle 旧日期风格
  280. * @param newDateStyle 新日期风格
  281. * @return 新日期字符串
  282. */
  283. public static String StringToString(String date, DateStyle olddDteStyle, DateStyle newDateStyle) {
  284. String dateString = null;
  285. if (olddDteStyle == null) {
  286. DateStyle style = getDateStyle(date);
  287. dateString = StringToString(date, style.getValue(), newDateStyle.getValue());
  288. else {
  289. dateString = StringToString(date, olddDteStyle.getValue(), newDateStyle.getValue());
  290. }
  291. return dateString;
  292. }
  293. /**
  294. * 增加日期的年份。失败返回null。
  295. * @param date 日期
  296. * @param yearAmount 增加数量。可为负数
  297. * @return 增加年份后的日期字符串
  298. */
  299. public static String addYear(String date, int yearAmount) {
  300. return addInteger(date, Calendar.YEAR, yearAmount);
  301. }
  302. /**
  303. * 增加日期的年份。失败返回null。
  304. * @param date 日期
  305. * @param yearAmount 增加数量。可为负数
  306. * @return 增加年份后的日期
  307. */
  308. public static Date addYear(Date date, int yearAmount) {
  309. return addInteger(date, Calendar.YEAR, yearAmount);
  310. }
  311. /**
  312. * 增加日期的月份。失败返回null。
  313. * @param date 日期
  314. * @param yearAmount 增加数量。可为负数
  315. * @return 增加月份后的日期字符串
  316. */
  317. public static String addMonth(String date, int yearAmount) {
  318. return addInteger(date, Calendar.MONTH, yearAmount);
  319. }
  320. /**
  321. * 增加日期的月份。失败返回null。
  322. * @param date 日期
  323. * @param yearAmount 增加数量。可为负数
  324. * @return 增加月份后的日期
  325. */
  326. public static Date addMonth(Date date, int yearAmount) {
  327. return addInteger(date, Calendar.MONTH, yearAmount);
  328. }
  329. /**
  330. * 增加日期的天数。失败返回null。
  331. * @param date 日期字符串
  332. * @param dayAmount 增加数量。可为负数
  333. * @return 增加天数后的日期字符串
  334. */
  335. public static String addDay(String date, int dayAmount) {
  336. return addInteger(date, Calendar.DATE, dayAmount);
  337. }
  338. /**
  339. * 增加日期的天数。失败返回null。
  340. * @param date 日期
  341. * @param dayAmount 增加数量。可为负数
  342. * @return 增加天数后的日期
  343. */
  344. public static Date addDay(Date date, int dayAmount) {
  345. return addInteger(date, Calendar.DATE, dayAmount);
  346. }
  347. /**
  348. * 增加日期的小时。失败返回null。
  349. * @param date 日期字符串
  350. * @param dayAmount 增加数量。可为负数
  351. * @return 增加小时后的日期字符串
  352. */
  353. public static String addHour(String date, int hourAmount) {
  354. return addInteger(date, Calendar.HOUR_OF_DAY, hourAmount);
  355. }
  356. /**
  357. * 增加日期的小时。失败返回null。
  358. * @param date 日期
  359. * @param dayAmount 增加数量。可为负数
  360. * @return 增加小时后的日期
  361. */
  362. public static Date addHour(Date date, int hourAmount) {
  363. return addInteger(date, Calendar.HOUR_OF_DAY, hourAmount);
  364. }
  365. /**
  366. * 增加日期的分钟。失败返回null。
  367. * @param date 日期字符串
  368. * @param dayAmount 增加数量。可为负数
  369. * @return 增加分钟后的日期字符串
  370. */
  371. public static String addMinute(String date, int hourAmount) {
  372. return addInteger(date, Calendar.MINUTE, hourAmount);
  373. }
  374. /**
  375. * 增加日期的分钟。失败返回null。
  376. * @param date 日期
  377. * @param dayAmount 增加数量。可为负数
  378. * @return 增加分钟后的日期
  379. */
  380. public static Date addMinute(Date date, int hourAmount) {
  381. return addInteger(date, Calendar.MINUTE, hourAmount);
  382. }
  383. /**
  384. * 增加日期的秒钟。失败返回null。
  385. * @param date 日期字符串
  386. * @param dayAmount 增加数量。可为负数
  387. * @return 增加秒钟后的日期字符串
  388. */
  389. public static String addSecond(String date, int hourAmount) {
  390. return addInteger(date, Calendar.SECOND, hourAmount);
  391. }
  392. /**
  393. * 增加日期的秒钟。失败返回null。
  394. * @param date 日期
  395. * @param dayAmount 增加数量。可为负数
  396. * @return 增加秒钟后的日期
  397. */
  398. public static Date addSecond(Date date, int hourAmount) {
  399. return addInteger(date, Calendar.SECOND, hourAmount);
  400. }
  401. /**
  402. * 获取日期的年份。失败返回0。
  403. * @param date 日期字符串
  404. * @return 年份
  405. */
  406. public static int getYear(String date) {
  407. return getYear(StringToDate(date));
  408. }
  409. /**
  410. * 获取日期的年份。失败返回0。
  411. * @param date 日期
  412. * @return 年份
  413. */
  414. public static int getYear(Date date) {
  415. return getInteger(date, Calendar.YEAR);
  416. }
  417. /**
  418. * 获取日期的月份。失败返回0。
  419. * @param date 日期字符串
  420. * @return 月份
  421. */
  422. public static int getMonth(String date) {
  423. return getMonth(StringToDate(date));
  424. }
  425. /**
  426. * 获取日期的月份。失败返回0。
  427. * @param date 日期
  428. * @return 月份
  429. */
  430. public static int getMonth(Date date) {
  431. return getInteger(date, Calendar.MONTH);
  432. }
  433. /**
  434. * 获取日期的天数。失败返回0。
  435. * @param date 日期字符串
  436. * @return 天
  437. */
  438. public static int getDay(String date) {
  439. return getDay(StringToDate(date));
  440. }
  441. /**
  442. * 获取日期的天数。失败返回0。
  443. * @param date 日期
  444. * @return 天
  445. */
  446. public static int getDay(Date date) {
  447. return getInteger(date, Calendar.DATE);
  448. }
  449. /**
  450. * 获取日期的小时。失败返回0。
  451. * @param date 日期字符串
  452. * @return 小时
  453. */
  454. public static int getHour(String date) {
  455. return getHour(StringToDate(date));
  456. }
  457. /**
  458. * 获取日期的小时。失败返回0。
  459. * @param date 日期
  460. * @return 小时
  461. */
  462. public static int getHour(Date date) {
  463. return getInteger(date, Calendar.HOUR_OF_DAY);
  464. }
  465. /**
  466. * 获取日期的分钟。失败返回0。
  467. * @param date 日期字符串
  468. * @return 分钟
  469. */
  470. public static int getMinute(String date) {
  471. return getMinute(StringToDate(date));
  472. }
  473. /**
  474. * 获取日期的分钟。失败返回0。
  475. * @param date 日期
  476. * @return 分钟
  477. */
  478. public static int getMinute(Date date) {
  479. return getInteger(date, Calendar.MINUTE);
  480. }
  481. /**
  482. * 获取日期的秒钟。失败返回0。
  483. * @param date 日期字符串
  484. * @return 秒钟
  485. */
  486. public static int getSecond(String date) {
  487. return getSecond(StringToDate(date));
  488. }
  489. /**
  490. * 获取日期的秒钟。失败返回0。
  491. * @param date 日期
  492. * @return 秒钟
  493. */
  494. public static int getSecond(Date date) {
  495. return getInteger(date, Calendar.SECOND);
  496. }
  497. /**
  498. * 获取日期 。默认yyyy-MM-dd格式。失败返回null。
  499. * @param date 日期字符串
  500. * @return 日期
  501. */
  502. public static String getDate(String date) {
  503. return StringToString(date, DateStyle.YYYY_MM_DD);
  504. }
  505. /**
  506. * 获取日期。默认yyyy-MM-dd格式。失败返回null。
  507. * @param date 日期
  508. * @return 日期
  509. */
  510. public static String getDate(Date date) {
  511. return DateToString(date, DateStyle.YYYY_MM_DD);
  512. }
  513. /**
  514. * 获取日期的时间。默认HH:mm:ss格式。失败返回null。
  515. * @param date 日期字符串
  516. * @return 时间
  517. */
  518. public static String getTime(String date) {
  519. return StringToString(date, DateStyle.HH_MM_SS);
  520. }
  521. /**
  522. * 获取日期的时间。默认HH:mm:ss格式。失败返回null。
  523. * @param date 日期
  524. * @return 时间
  525. */
  526. public static String getTime(Date date) {
  527. return DateToString(date, DateStyle.HH_MM_SS);
  528. }
  529. /**
  530. * 获取日期的星期。失败返回null。
  531. * @param date 日期字符串
  532. * @return 星期
  533. */
  534. public static Week getWeek(String date) {
  535. Week week = null;
  536. DateStyle dateStyle = getDateStyle(date);
  537. if (dateStyle != null) {
  538. Date myDate = StringToDate(date, dateStyle);
  539. week = getWeek(myDate);
  540. }
  541. return week;
  542. }
  543. /**
  544. * 获取日期的星期。失败返回null。
  545. * @param date 日期
  546. * @return 星期
  547. */
  548. public static Week getWeek(Date date) {
  549. Week week = null;
  550. Calendar calendar = Calendar.getInstance();
  551. calendar.setTime(date);
  552. int weekNumber = calendar.get(Calendar.DAY_OF_WEEK) - 1;
  553. switch (weekNumber) {
  554. case 0:
  555. week = Week.SUNDAY;
  556. break;
  557. case 1:
  558. week = Week.MONDAY;
  559. break;
  560. case 2:
  561. week = Week.TUESDAY;
  562. break;
  563. case 3:
  564. week = Week.WEDNESDAY;
  565. break;
  566. case 4:
  567. week = Week.THURSDAY;
  568. break;
  569. case 5:
  570. week = Week.FRIDAY;
  571. break;
  572. case 6:
  573. week = Week.SATURDAY;
  574. break;
  575. }
  576. return week;
  577. }
  578. /**
  579. * 获取两个日期相差的天数
  580. * @param date 日期字符串
  581. * @param otherDate 另一个日期字符串
  582. * @return 相差天数
  583. */
  584. public static int getIntervalDays(String date, String otherDate) {
  585. return getIntervalDays(StringToDate(date), StringToDate(otherDate));
  586. }
  587. /**
  588. * @param date 日期
  589. * @param otherDate 另一个日期
  590. * @return 相差天数
  591. */
  592. public static int getIntervalDays(Date date, Date otherDate) {
  593. date = DateUtil.StringToDate(DateUtil.getDate(date));
  594. long time = Math.abs(date.getTime() - otherDate.getTime());
  595. return (int)time/(24 * 60 * 60 * 1000);
  596. }
  597. }

DateStyle类

[java] view plain copy
  1. package com.util;
  2. public enum DateStyle {
  3. MM_DD("MM-dd"),
  4. YYYY_MM("yyyy-MM"),
  5. YYYY_MM_DD("yyyy-MM-dd"),
  6. MM_DD_HH_MM("MM-dd HH:mm"),
  7. MM_DD_HH_MM_SS("MM-dd HH:mm:ss"),
  8. YYYY_MM_DD_HH_MM("yyyy-MM-dd HH:mm"),
  9. YYYY_MM_DD_HH_MM_SS("yyyy-MM-dd HH:mm:ss"),
  10. MM_DD_EN("MM/dd"),
  11. YYYY_MM_EN("yyyy/MM"),
  12. YYYY_MM_DD_EN("yyyy/MM/dd"),
  13. MM_DD_HH_MM_EN("MM/dd HH:mm"),
  14. MM_DD_HH_MM_SS_EN("MM/dd HH:mm:ss"),
  15. YYYY_MM_DD_HH_MM_EN("yyyy/MM/dd HH:mm"),
  16. YYYY_MM_DD_HH_MM_SS_EN("yyyy/MM/dd HH:mm:ss"),
  17. MM_DD_CN("MM月dd日"),
  18. YYYY_MM_CN("yyyy年MM月"),
  19. YYYY_MM_DD_CN("yyyy年MM月dd日"),
  20. MM_DD_HH_MM_CN("MM月dd日 HH:mm"),
  21. MM_DD_HH_MM_SS_CN("MM月dd日 HH:mm:ss"),
  22. YYYY_MM_DD_HH_MM_CN("yyyy年MM月dd日 HH:mm"),
  23. YYYY_MM_DD_HH_MM_SS_CN("yyyy年MM月dd日 HH:mm:ss"),
  24. HH_MM("HH:mm"),
  25. HH_MM_SS("HH:mm:ss");
  26. private String value;
  27. DateStyle(String value) {
  28. this.value = value;
  29. }
  30. public String getValue() {
  31. return value;
  32. }
  33. }

Week类

[java] view plain copy
  1. package com.util;
  2. public enum Week {
  3. MONDAY("星期一", "Monday", "Mon.", 1),
  4. TUESDAY("星期二", "Tuesday", "Tues.", 2),
  5. WEDNESDAY("星期三", "Wednesday", "Wed.", 3),
  6. THURSDAY("星期四", "Thursday", "Thur.", 4),
  7. FRIDAY("星期五", "Friday", "Fri.", 5),
  8. SATURDAY("星期六", "Saturday", "Sat.", 6),
  9. SUNDAY("星期日", "Sunday", "Sun.", 7);
  10. String name_cn;
  11. String name_en;
  12. String name_enShort;
  13. int number;
  14. Week(String name_cn, String name_en, String name_enShort, int number) {
  15. this.name_cn = name_cn;
  16. this.name_en = name_en;
  17. this.name_enShort = name_enShort;
  18. this.number = number;
  19. }
  20. public String getChineseName() {
  21. return name_cn;
  22. }
  23. public String getName() {
  24. return name_en;
  25. }
  26. public String getShortName() {
  27. return name_enShort;
  28. }
  29. public int getNumber() {
  30. return number;
  31. }
  32. }

我编写这个util的目的主要是为了解决StringToDate的麻烦,日期的格式有很多,因此仅通过SimpleDateFormat只能格式化一个日期格式,所以我用DateStyle来匹配主流的日期格式,如果有新的日期格式同样也可以加,但本人并未把所有日期格式都测试了,所以并不保证不出错,但我保留了传递SimpleDateFormat的parttern的方式,因此可以通过这个来解决。

另外,目前这个日期工具类还有个bug,就是如果日期太大(如2300-05-14)或太小的话,自动匹配日期格式的核心算法(getAccurateDate)还是有问题,目前这个版本支持的范围,大概是:【加100年——当前时间——减100年】,这个bug笔者日后会考虑改进,另外如果大家对日期工具类有什么更好的方法,欢迎随时与我沟通交流哦!

============友情链接============

java日期工具类DateUtil-续二 http://blog.csdn.net/wangpeng047/article/details/8295623

java日期工具类DateUtil-续一 http://blog.csdn.net/wangpeng047/article/details/8270466

java日期工具类DateUtil相关推荐

  1. java日期工具类(转载)

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  2. java日期工具类、日期格式校验、日期格式化

    文章目录 前言 日期格式校验 String转Date Date格式化为String类型 获取指定日期所在季度的第一天 获取指定日期所在季度的最后一天 LocalDate转Date 日期utils工具类 ...

  3. Java 日期工具类(今天、昨天、本周、上周、本月、上月、本年及特定时间的开始时间和结束时间)

    timestamp格式的部分 /*** 获取当天的开始时间* @return Timestamp* @author LoveEmperor_王子様* date: 2019/8/15 15:50*/pu ...

  4. 日期工具类---DateUtil

    2019独角兽企业重金招聘Python工程师标准>>> public class DateUtil {/*** 每分钟秒数*/public static final int MINU ...

  5. 天干地支 工具类java_java日期工具类DateUtil-续二

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

  6. java处理日期的工具类DateUtil

    java中处理日期的工具类DateUtil package com.leo.demo.othertest; import org.slf4j.LoggerFactory; import java.sq ...

  7. java 星期几、得周一、得周日、上周、下周、相差、日期工具类

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. import org.apache.commons.lang3.StringUtils;import ...

  8. java中常用的日期工具类

    java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...

  9. 自定义日期工具类 java 1614698552

    自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法

最新文章

  1. 一文看懂docker容器技术架构及其中的各个模块
  2. 资源 | 《统计学习方法》的Python 3.6复现,实测可用
  3. select中option改变时跳转到其他页面
  4. SAP的标准对话框函数
  5. python产生fir滤波器_Python中使用FIR滤波器firwin后信号的相移
  6. 的注册表怎么才能删干净_袜子怎么洗才能洗干净,你需要这些技巧
  7. 数据库的方向 - 行vs列(转自: IBM i 中国开发团队)
  8. 【SSH进阶】No result defined for action **的解决方案
  9. BZOJ3728 PA2014Final Zarowki
  10. 计算机操作系统(第四版)课后习题答案西电版V2.0校对版
  11. 组合体计算机绘图的实验原理,《机械制图及计算机绘图》实验教案.pdf
  12. 如何将word中两栏的A3纸横向排列文档转成标准A4文档
  13. android 新浪微博分享链接地址,Android 集成新浪微博分享及授权 (上)
  14. 如何在php文件中插入图片,使用PHPWord读取Word文件并插入图片
  15. 纷享销客百思特 | 数字化营销赋能企业新增长沙龙圆满落幕
  16. [NOIP2003]侦探推理 详解+python实现
  17. 【TouchDesigner】Feedback的应用NO.1
  18. 淘宝TOP开发:(一)
  19. 搭建数字孪生车间需要哪些关键技术?
  20. linux下挂载共享目录,linux mount挂载共享目录详解

热门文章

  1. oracle insert 当前时间_Oracle知识点总结
  2. python生成json_生成动态嵌套JSON对象和数组-python - python
  3. 【HDU - 6662】Acesrc and Travel(树形dp,博弈dp)
  4. 【POJ - 2151】Check the difficulty of problems(概率dp)
  5. 【CodeForces - 864C】Bus (模拟,有坑)
  6. 计算机网络阶段,计算机网络的发展大致可分为四个阶段,目前人类进入了()。 - 问答库...
  7. 计算机网络技术实验,计算机网络技术实验
  8. android adb 开机广播,Android中常用的adb指令
  9. ecshop php升级,升级-安装与升级- ECShop帮助
  10. mysql mysqld.sock_MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题