当前位置:   article > 正文

java DateUtil 【java基础】

java dateutil

好的DateUtil可以更好的服务于应用。使code简洁明了。

在此提供下本人写的(经常用的)DateUtil。先看下方法提示

效果:

测试:

  1. String starttime = DateUtil.getDateyMdHmsS();
  2. Date dates = new Date();
  3. /*日期计算*/
  4. //时间计算到天:860天
  5. System.out.println(DateUtil.TotalDay("2016-08-20", "2018-12-28"));
  6. //时间计算:精确到秒:剩余:738天4小时5分7秒
  7. System.out.println(DateUtil.TotalDayHms("2016-12-20 13:23:12", "2018-12-28 17:28:19"));
  8. //时间计算:精确到毫秒:剩余:738天5小时5分7秒135毫秒
  9. System.out.println(DateUtil.TotalDayHmsS("2016-12-20 12:23:12.223", "2018-12-28 17:28:19.358"));
  10. //当前时间的前3天:
  11. //2016年12月12日
  12. System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", DateUtil.getDate("yyyy年MM月dd日"), -3, "yyyy年MM月dd日"));
  13. //
  14. //当前时间的后3天:2016年12月18日
  15. System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", DateUtil.getDate("yyyy年MM月dd日"), 3, "yyyy年MM月dd日"));
  16. //指定日期的明天是:2016-12-16
  17. System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", "2016年12月15日", 1, "yyyy-MM-dd"));
  18. //指定日期的大后天是:
  19. //2016-12-18 12:23:16
  20. System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日 HH:mm:ss", "2016年12月15日 12:23:16", 3, "yyyy-MM-dd HH:mm:ss"));
  21. //指定日期的昨天是:2016-12-14
  22. System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", "2016年12月15日", -1, "yyyy-MM-dd"));
  23. //闰年判断
  24. System.out.println("闰年判断:");
  25. //2014年7月23日: false
  26. System.out.println("2014年7月23日: "+DateUtil.getDateIsLeapYear("2014年7月23日","yyyy年MM月dd日"));
  27. //2016-12-28 is true
  28. System.out.println("2016-12-28 is "+DateUtil.getDateIsLeapYear("2016-12-28","yyyy-MM-dd"));
  29. // 二月份合规检查
  30. //2016-02-28 is 2月最后一天为:2月29日 (公历)
  31. System.out.println("2016-02-28 is "+DateUtil.getDateIsMonthDay("2016-2-28","yyyy-MM-dd"));
  32. //2017-02-29 is 2月最后一天为:2月28日 (公历)
  33. System.out.println("2017-02-29 is "+DateUtil.getDateIsMonthDay("2017-2-29","yyyy-MM-dd"));
  34. /*时间戳转换*/
  35. System.out.println("时间戳转换:");
  36. //获取指定日期的时间戳 1482898996238
  37. System.out.println(DateUtil.getDateMillisecond("2016-12-28 12:23:16.238", "yyyy-MM-dd HH:mm:ss.SSS"));
  38. //时间戳的日期 2016-12-28 12:23:16.238
  39. System.out.println(DateUtil.getMillisecondDate(1482898996238L, "yyyy-MM-dd HH:mm:ss.SSS"));
  40. /*获取当前日期 */
  41. //当前时间戳 1482898996238
  42. System.out.println(DateUtil.getTimeInMillis());
  43. //当前日期,含毫秒 可用于高精度的时间差计算
  44. System.out.println(DateUtil.getDateyMdHmsS());
  45. //2016-12-28 15:17:24
  46. System.out.println(DateUtil.getDate("yyyy-MM-dd HH:mm:ss"));
  47. //14:33
  48. System.out.println(DateUtil.getDate("HH:mm"));
  49. //12-28
  50. System.out.println(DateUtil.getDate("MM-dd"));
  51. //14时33分
  52. System.out.println(DateUtil.getDate("HH时mm分"));
  53. //12月28日
  54. System.out.println(DateUtil.getDate("MM月dd日"));
  55. //2016-12-28 15:20:10 星期三
  56. System.out.println(DateUtil.getDateWeek());
  57. //星期三 2016-12-28 16:17:04
  58. System.out.println(DateUtil.getWeekDate());
  59. //2016-12-28 星期三
  60. System.out.println(DateUtil.getDateWeeks());
  61. //12月28日 星期三
  62. System.out.println(DateUtil.getDateWeekmd());
  63. //12-28 星期三
  64. System.out.println(DateUtil.getDateWeekmdC());
  65. //12-28 星期三 16:29
  66. System.out.println(DateUtil.getDateWeekMdHm());
  67. //12月28日 星期三 16:31
  68. System.out.println(DateUtil.getDateWeekMdHmC());
  69. //2016年12月28日 15时17分24秒 星期三
  70. System.out.println(DateUtil.getDateWeekC());
  71. //2016年12月28日 星期三 16时12分21秒
  72. System.out.println(DateUtil.getWeekCDate());
  73. //2016年12月28日 星期三
  74. System.out.println(DateUtil.getDateWeekCh());
  75. /*指定日期带星期:*/
  76. //指定日期 带星期:
  77. //2016-12-28 是 星期三
  78. System.out.println(DateUtil.getWeekOfDate("2016-12-28"));
  79. //2016年12月28日 是 星期三
  80. System.out.println(DateUtil.getWeekOfDate(DateUtil.getDateTypeMds("2016年12月28日")));
  81. /*英式*/
  82. //Wednesday
  83. System.out.println(DateUtil.getWeekE());
  84. //Wed.
  85. System.out.println(DateUtil.getWeekEn());
  86. //Wednesday
  87. System.out.println(DateUtil.getWeekOfDateE("2016-12-28"));
  88. //Wed.
  89. System.out.println(DateUtil.getWeekOfDateEn(DateUtil.getDateTypeMds("2016年12月28日")));
  90. /*month*/
  91. //December
  92. System.out.println(DateUtil.getMonthE());
  93. //Dec.
  94. System.out.println(DateUtil.getMonthEn());
  95. //December
  96. System.out.println(DateUtil.getMonthOfDateE("2016-12-28"));
  97. //Dec.
  98. System.out.println(DateUtil.getMonthOfDateEn(DateUtil.getDateTypeMds("2016年12月28日")));
  99. /*英版-日期格式 当前日期 */
  100. //Wednesday,December 28,2016
  101. System.out.println(DateUtil.getDateE());
  102. //Wed.Dec.28, 2016
  103. System.out.println(DateUtil.getDateEn());
  104. //Dec.28, 2016
  105. System.out.println(DateUtil.getDateEng());
  106. /*指定日期-英版*/
  107. //Wed.Dec.28, 2016
  108. System.out.println(DateUtil.getDateWeekE("2016-12-28"));
  109. //Sun.Feb.28, 2016
  110. System.out.println(DateUtil.getDateWeekE("2016-02-28"));
  111. //Wednesday,December 28, 2016
  112. System.out.println(DateUtil.getDateWeekEn("2016-12-28"));
  113. //Mon.Mar.28, 2016
  114. System.out.println(DateUtil.getDateWeekE(DateUtil.getDateTypeMds("2016年3月28日")));
  115. /*Calendar*/
  116. //当前日期:Thu Dec 28 14:58:33 CST 2016
  117. System.out.println(Calendar.getInstance().getTime());
  118. //当前日期转换:2016-12-28 16:42:41
  119. System.out.println(DateUtil.getCalendarToStr(Calendar.getInstance()));
  120. //2016-12-28 16:42
  121. System.out.println(DateUtil.getCalendarToStrHm(Calendar.getInstance()));
  122. /*日期转换*/
  123. //yyyy-MM-dd HH:mm:ss 转 yyyy年M月d日 HH时mm分ss秒 (日期中月、日带0的,转换后则不含0)
  124. //2016-02-12 12:23:12 is 2016年2月12日 12时23分12秒
  125. System.out.println("2016-02-12 12:23:12 is " + DateUtil.getDateType("2016-02-12 12:23:12"));
  126. //2016-12-02 12:23:12 is 2016年12月2日 12时23分12秒
  127. System.out.println("2016-12-02 12:23:12 is " + DateUtil.getDateType("2016-12-02 12:23:12"));
  128. //2016-02-09 12:23:12 is 2016年2月9日 12时23分12秒
  129. System.out.println("2016-02-09 12:23:12 is " + DateUtil.getDateType("2016-02-09 12:23:12"));
  130. //yyyy年MM月dd日 HH时mm分ss秒 转 yyyy-M-d HH:mm:ss (日期中月、日带0的,转换后则不含0)
  131. //2016-12-20 12:23:12
  132. System.out.println(DateUtil.getDateTypes("2016年12月20日 12时23分12秒"));
  133. //2016-1-3 02:03:02
  134. System.out.println(DateUtil.getDateTypes("2016年01月03日 02时03分02秒"));
  135. //2016-12-28 16:02:27
  136. System.out.println(DateUtil.getCalendarToStr(Calendar.getInstance(), "yyyy-MM-dd HH:mm:ss"));
  137. //Sat Jan 23 12:23:35 CST 2016
  138. System.out.println(DateUtil.getStrToDate("2016-01-23 12:23:35", "yyyy-MM-dd HH:mm:ss").toString());
  139. //2016-12-28 16:11:59
  140. System.out.println(DateUtil.getDateToStr(dates, "yyyy-MM-dd HH:mm:ss"));
  141. /*起始日期*/
  142. //今日开始日期:2016-12-28 00:00:00.000
  143. System.out.println(DateUtil.getDate("yyyy-MM-dd 00:00:00.000"));
  144. //指定日期的开始时间:2016-01-23 00:00:00.000
  145. System.out.println(DateUtil.getStartDateValue("2016-01-23 12:23:35.221"));
  146. //今日结束日期:2016-12-28 23:59:59.999
  147. System.out.println(DateUtil.getDate("yyyy-MM-dd 23:59:59.999"));
  148. //指定日期的结束时间:2016-01-23 23:59:59.999
  149. System.out.println(DateUtil.getEndDateValue("2016-01-23 12:23:35.221"));
  150. String endtime = DateUtil.getDateyMdHmsS();
  151. //复杂程序中的执行用时:
  152. System.out.println(DateUtil.TotalDayHmsS(starttime, endtime));
  153. // 农历/阴历 略。

code主体部分:

  1. package com.xxx..xxx.xxxx.xx.Util;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.*;
  5. public class DateUtil {
  6. /*时间计算:计算到天、计算到秒、计算到毫秒*/
  7. /**
  8. * <B>方法名:TotalDay(String startDate,String endDate)</B><BR>
  9. * <B>说明:计算时间天数差</B>
  10. *
  11. * @param startDate 开始时间,"yyyy-MM-dd"
  12. * @param endDate 结束时间,"yyyy-MM-dd"
  13. * @return String _天
  14. */
  15. public static String TotalDay(String startDate, String endDate) {
  16. SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd");
  17. Long day = 0L;
  18. try {
  19. long end = sdfs.parse(endDate).getTime();
  20. long str = sdfs.parse(startDate).getTime();
  21. day = (end - str) / (1000 * 60 * 60 * 24);
  22. } catch (ParseException e) {
  23. e.printStackTrace();
  24. }
  25. return day.intValue() + "天";
  26. }
  27. /**
  28. * <B>方法名:getDateCountDay(Date datevalue, Integer daynum)</B><BR>
  29. * <B>说明:一个日期的前N天或后N天的日期</B><BR>
  30. *
  31. * @param datevalue 日期变量
  32. * @param daynum 前后N天天数,整数(向前:负整数,向后:正整数)。
  33. * @return Date
  34. */
  35. public static Date getDateCountDay(Date datevalue, Integer daynum) {
  36. Calendar car = Calendar.getInstance();
  37. car.setTime(datevalue);
  38. car.add(Calendar.DATE, daynum);
  39. return car.getTime();
  40. }
  41. /**
  42. * <B>方法名:getDateCountDay(String datetypeIn,String datevalue, Integer daynum,String datetypeOut)</B><BR>
  43. * <B>说明:根据指定日期、日期格式、前后天数计算出日期。</B><BR>
  44. *
  45. * @param datetypein 日期变量格式。
  46. * @param datevalue 日期变量。
  47. * @param daynum 前后N天天数,整数(向前:负整数,向后:正整数)。
  48. * @param datetypeout 输出,日期格式。
  49. * @return String
  50. */
  51. public static String getDateCountDay(String datetypeIn, String datevalue, Integer daynum, String datetypeOut) {
  52. SimpleDateFormat sdfin = new SimpleDateFormat(datetypeIn);
  53. SimpleDateFormat sdfout = new SimpleDateFormat(datetypeOut);
  54. Calendar car = Calendar.getInstance();
  55. Date date = null;
  56. try {
  57. date = sdfin.parse(datevalue);
  58. } catch (ParseException e) {
  59. System.out.println(e.getMessage());
  60. }
  61. car.setTime(date);
  62. car.add(Calendar.DATE, daynum);
  63. return sdfout.format(car.getTime());
  64. }
  65. /**
  66. * <B>方法名:TotalDayHms(String startDate, String endDate)</B><BR>
  67. * <B>说明:计算时间差,精确到秒。</B>
  68. *
  69. * @param startDate 开始时间,"yyyy-MM-dd HH:mm:ss"
  70. * @param endDate 结束时间,"yyyy-MM-dd HH:mm:ss"
  71. * @return String 剩余:_天_小时_分_秒
  72. */
  73. public static String TotalDayHms(String startDate, String endDate) {
  74. SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  75. Long str = 0L, end = 0L;
  76. try {
  77. str = sdfs.parse(startDate).getTime();
  78. end = sdfs.parse(endDate).getTime();
  79. } catch (ParseException e) {
  80. e.printStackTrace();
  81. }
  82. //(24*60*60=86400)一天总秒数,60*60=3600 一小时的总秒数
  83. //相差总毫秒数。
  84. Long dayes = end - str;
  85. //相差总秒数。
  86. Long dayS = dayes / 1000;
  87. //剩余天数。
  88. Long day = dayS / 86400;
  89. //天数外,剩余秒数。
  90. Long Seconds = dayS - day * 86400;
  91. //剩余小时数,整数。
  92. Long hour = Seconds / 3600;
  93. //除天数、小时数后剩余秒数。
  94. Long hourEnds = dayS - day * 86400 - hour * 3600;
  95. //剩余分钟数,整数。
  96. Long Minutes = hourEnds / 60;
  97. //剩余秒数。
  98. Long tdMin = dayS - day * 86400 - hour * 3600 - Minutes * 60;
  99. return "相差/剩余:" + day + "天" + hour + "小时" + Minutes + "分" + tdMin + "秒";
  100. }
  101. /**
  102. * <B>方法名:TotalDayHmsS(String startDate, String endDate)</B><BR>
  103. * <B>说明:计算时间差,精确到毫秒。</B>
  104. *
  105. * @param startDate 开始时间,"yyyy-MM-dd HH:mm:ss.SSS"
  106. * @param endDate 结束时间,"yyyy-MM-dd HH:mm:ss.SSS"
  107. * @return String 剩余:_天_小时_分_秒_毫秒
  108. */
  109. public static String TotalDayHmsS(String startDate, String endDate) {
  110. SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
  111. Long str = 0L, end = 0L;
  112. try {
  113. str = sdfs.parse(startDate).getTime();
  114. end = sdfs.parse(endDate).getTime();
  115. } catch (ParseException e) {
  116. e.printStackTrace();
  117. }
  118. Long dayes = end - str;
  119. Long dayS = dayes / 1000;
  120. Long day = dayS / 86400;
  121. Long Seconds = dayS - day * 86400;
  122. Long hour = Seconds / 3600;
  123. Long hourEnds = dayS - day * 86400 - hour * 3600;
  124. Long Minutes = hourEnds / 60;
  125. Long tdMin = dayS - day * 86400 - hour * 3600 - Minutes * 60;
  126. //()可略:
  127. Long millisecond = dayes - (day * 86400 * 1000) - (hour * 3600 * 1000) - (Minutes * 60 * 1000) - (tdMin * 1000);
  128. return "相差/剩余:" + day + "天" + hour + "小时" + Minutes + "分" + tdMin + "秒" + millisecond + "毫秒";
  129. }
  130. /**
  131. * <B>方法名:getDateIsLeapYear(String value,String datetype)</B><BR>
  132. * <B>说明:判断输入的日期是否是闰年</B><BR>
  133. * @param value 日期变量
  134. * @param datetype 日期格式变量
  135. * @return Boolean
  136. */
  137. public static Boolean getDateIsLeapYear(String value,String datetype) {
  138. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  139. Calendar car = Calendar.getInstance();
  140. Date date = null;
  141. try {
  142. date = sdf.parse(value);
  143. } catch (ParseException e) {
  144. e.printStackTrace();
  145. }
  146. car.setTime(date);
  147. Integer year = car.get(Calendar.YEAR);
  148. if ( year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
  149. return true;
  150. } else {
  151. return false;
  152. }
  153. }
  154. /**
  155. * <B>方法名:getDateIsMonthDay(String value,String datetype)</B><BR>
  156. *<B>说明:2月合规检查</B><BR>
  157. * @param value 日期变量
  158. * @param datetype 日期格式变量
  159. * @return String 提示2月最后天数
  160. */
  161. public static String getDateIsMonthDay(String value,String datetype){
  162. if(getDateIsLeapYear(value,datetype)){
  163. return "2月最后一天为:2月29日 (公历)";
  164. }else{
  165. return "2月最后一天为:2月28日 (公历)";
  166. }
  167. }
  168. /*时间戳*/
  169. /**
  170. * <B>方法名:getDateToMillisecond(String datestr, String datetype)</B><BR>
  171. * <B>说明:获取指定日期时间戳/获取指定日期毫秒数</B><BR>
  172. *
  173. * @param datestr 日期参数 变量
  174. * @param datetype 日期格式 变量
  175. * @return Long
  176. */
  177. public static Long getDateMillisecond(String datestr, String datetype) {
  178. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  179. Long mil = 0L;
  180. try {
  181. mil = sdf.parse(datestr).getTime();
  182. } catch (ParseException e) {
  183. e.printStackTrace();
  184. }
  185. return mil;
  186. }
  187. /**
  188. * <B>方法名:getTimeInMillis()</B><BR>
  189. * <B>说明:获取当前时间戳</B><BR>
  190. *
  191. * @return Long
  192. */
  193. public static Long getTimeInMillis() {
  194. return Calendar.getInstance().getTimeInMillis();
  195. }
  196. /**
  197. * <B>方法名:getMillisecondDate(Long numL, String datetype)</B><BR>
  198. * <B>说明:时间戳转日期/根据毫秒数获取日期</B><BR>
  199. *
  200. * @param numL Long型时间戳,如:1545970996238L
  201. * @param datetype 日期格式
  202. * @return String 指定格式日期
  203. */
  204. public static String getMillisecondDate(Long numL, String datetype) {
  205. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  206. Long longs = Long.parseLong(String.valueOf(numL));
  207. return sdf.format(new Date(longs));
  208. }
  209. /*日期转换*/
  210. /**
  211. * <B>方法名:getDateType(String value)</B><BR>
  212. * <B>说明:yyyy-MM-dd HH:mm:ss 转 yyyy年M月d日 HH时mm分ss秒 ,日期中月、日含0的,转换后则不含0</B><BR>
  213. *
  214. * @param value 日期参数 yyyy-MM-dd HH:mm:ss
  215. * @return string
  216. */
  217. public static String getDateType(String value) {
  218. String datestr = "";
  219. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  220. SimpleDateFormat sdft = new SimpleDateFormat("yyyy年M月d日 HH时mm分ss秒");
  221. try {
  222. datestr = sdft.format(sdf.parse(value));
  223. } catch (ParseException e) {
  224. e.printStackTrace();
  225. }
  226. return datestr;
  227. }
  228. /**
  229. * <B>方法名:getDateTypeMd(String value)</B><BR>
  230. * <B>说明:yyyy-MM-dd 转 yyyy年M月d日 ,日期中月、日含0的,转换后则不含0</B><BR>
  231. *
  232. * @param value 日期参数 yyyy-MM-dd
  233. * @return string
  234. */
  235. public static String getDateTypeMd(String value) {
  236. String datestr = "";
  237. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  238. SimpleDateFormat sdft = new SimpleDateFormat("yyyy年M月d日");
  239. try {
  240. datestr = sdft.format(sdf.parse(value));
  241. } catch (ParseException e) {
  242. e.printStackTrace();
  243. }
  244. return datestr;
  245. }
  246. /**
  247. * <B>方法名:getDateTypes(String value)</B><BR>
  248. * <B>说明:yyyy年MM月dd日 HH时mm分ss秒 转 yyyy-M-d HH:mm:ss ,日期中月、日含0的,转换后则不含0</B><BR>
  249. *
  250. * @param value 日期参数 yyyy年MM月dd日 HH时mm分ss秒
  251. * @return string
  252. */
  253. public static String getDateTypes(String value) {
  254. String datestr = "";
  255. SimpleDateFormat sdft = new SimpleDateFormat("yyyy-M-d HH:mm:ss");
  256. SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
  257. try {
  258. datestr = sdft.format(sdf.parse(value));
  259. } catch (ParseException e) {
  260. e.printStackTrace();
  261. }
  262. return datestr;
  263. }
  264. /**
  265. * <B>方法名:getDateTypeMds(String value)</B><BR>
  266. * <B>说明:yyyy年MM月dd日 转 yyyy-M-d,日期中月、日含0的,转换后则不含0</B><BR>
  267. *
  268. * @param value 日期参数 yyyy年MM月dd日
  269. * @return string
  270. */
  271. public static String getDateTypeMds(String value) {
  272. String datestr = "";
  273. SimpleDateFormat sdft = new SimpleDateFormat("yyyy-M-d");
  274. SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
  275. try {
  276. datestr = sdft.format(sdf.parse(value));
  277. } catch (ParseException e) {
  278. e.printStackTrace();
  279. }
  280. return datestr;
  281. }
  282. /**
  283. * <B>方法名:</B>getDateToStr(Date value, String datetype)<BR>
  284. * <B>说明:</B>Date日期转字符串类型日期<BR>
  285. *
  286. * @param datetype 自定义日期类型
  287. * @param date 日期变量
  288. * @return 返回 String 日期
  289. */
  290. public static String getDateToStr(Date date, String datetype) {
  291. return new SimpleDateFormat(datetype).format(date);
  292. }
  293. /**
  294. * <B>方法名:getStrToDate(String value, String datetype)</B><BR>
  295. * <B>说明:字符串类型日期转Date日期</B><BR>
  296. *
  297. * @param value 日期变量
  298. * @param datetype 自定义日期类型
  299. * @return 返回Date日期
  300. */
  301. public static Date getStrToDate(String value, String datetype) {
  302. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  303. Date dates = null;
  304. try {
  305. dates = sdf.parse(value);
  306. } catch (ParseException e) {
  307. System.out.println(e.getMessage());
  308. }
  309. return dates;
  310. }
  311. /**
  312. * <B>方法名:getDate(String datetype)</B><BR>
  313. * <B>说明:根据日期类型返回当前日期</B><BR>
  314. *
  315. * @param datetype 日期类型: yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm:ss.SSS、
  316. * yyyy年MM月dd日 HH时mm分ss秒、yyyy-MM-dd、yyyy年MM月dd日、
  317. * HH:mm:ss、yyyy/MM/dd、yyyy、MM、dd、HH、mm、ss、SSS、
  318. * yyyyMMddHHmmssSSS、yyyy-MM-dd 00:00:00.000、yyyy-MM-dd 23:59:59.999
  319. * @return 返回String类型日期
  320. */
  321. public static String getDate(String datetype) {
  322. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  323. return sdf.format(new Date());
  324. }
  325. /**
  326. * <B>方法名:getDateyMdHms()</B><BR>
  327. * <B>说明:获取当前日期 </B><BR>
  328. *
  329. * @param "yyyy-MM-dd HH:mm:ss "
  330. * @return string
  331. */
  332. public static String getDateyMdHms() {
  333. return getDate("yyyy-MM-dd HH:mm:ss");
  334. }
  335. /**
  336. * <B>方法名:getDateyMdHmsS()</B><BR>
  337. * <B>说明:获取当前日期,含毫秒 </B><BR>
  338. *
  339. * @param "yyyy-MM-dd HH:mm:ss "
  340. * @return string
  341. */
  342. public static String getDateyMdHmsS() {
  343. return getDate("yyyy-MM-dd HH:mm:ss.SSS");
  344. }
  345. /**
  346. * <B>方法名:getDateyMd()</B><BR>
  347. * <B>说明:获取当前日期 </B><BR>
  348. *
  349. * @param "yyyy-MM-dd"
  350. * @return string
  351. */
  352. public static String getDateyMd() {
  353. return getDate("yyyy-MM-dd");
  354. }
  355. /**
  356. * <B>方法名:getDateC()</B><BR>
  357. * <B>说明:获取当前日期</B><BR>
  358. *
  359. * @param "yyyy年MM月dd日 HH时mm分ss秒"
  360. * @return string
  361. */
  362. public static String getDateC() {
  363. return getDate("yyyy年MM月dd日 HH时mm分ss秒");
  364. }
  365. /**
  366. * <B>方法名:getDateCh()</B><BR>
  367. * <B>说明:获取当前日期</B><BR>
  368. *
  369. * @param "yyyy年MM月dd日"
  370. * @return string
  371. */
  372. public static String getDateCh() {
  373. return getDate("yyyy年MM月dd日");
  374. }
  375. /**
  376. * <B>方法名:getDateValueyMd(String datevalue)</B><BR>
  377. * <B>说明:根据指定时间返回yyyy-MM-dd日期</B><BR>
  378. *
  379. * @param datevalue 日期变量:
  380. * @return date 返回日期
  381. */
  382. public static Date getDateValueyMd(String datevalue) {
  383. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  384. try {
  385. return sdf.parse(datevalue);
  386. } catch (ParseException e) {
  387. e.printStackTrace();
  388. }
  389. return new Date();
  390. }
  391. /**
  392. * <B>方法名:getStartDateValue(String value)</B><BR>
  393. * <B>说明:根据指定日期返回其开始时间</B><BR>
  394. *
  395. * @param value 日期变量,如:2018-01-23 12:23:35.221
  396. * @return String 如:2018-01-23 00:00:00.000
  397. */
  398. public static String getStartDateValue(String value) {
  399. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00.000");
  400. return sdf.format(getDateValueyMd(value));
  401. }
  402. /**
  403. * <B>方法名:getEndDateValue(String value)</B><BR>
  404. * <B>说明:根据指定日期返回其结束时间</B><BR>
  405. *
  406. * @param value 日期变量,如:2018-01-23 12:23:35.221
  407. * @return String 如:2018-01-23 23:59:59.999
  408. */
  409. public static String getEndDateValue(String value) {
  410. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 23:59:59.999");
  411. return sdf.format(getDateValueyMd(value));
  412. }
  413. /**
  414. * <B>方法名:getWeek()</B><BR>
  415. * <B>说明:星期-中式</B><BR>
  416. *
  417. * @return 根据当前日期返回星期数,如:星期一
  418. */
  419. public static String getWeek() {
  420. Calendar car = Calendar.getInstance();
  421. int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
  422. return getNumToWeek(weeknum);
  423. }
  424. /**
  425. * <B>方法名:getWeekOfDate(String value)</B><BR>
  426. * <B>说明:星期-中式</B><BR>
  427. * @param value 日期变量 yyyy-MM-dd
  428. * @return 根据指定日期返回星期数,如:星期一
  429. */
  430. public static String getWeekOfDate(String value){
  431. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  432. Calendar car=Calendar.getInstance();
  433. Date date=null;
  434. try {
  435. date=sdf.parse(value);
  436. }catch(ParseException e){
  437. e.printStackTrace();
  438. }
  439. car.setTime(date);
  440. return getNumToWeek(car.get(Calendar.DAY_OF_WEEK)-1);
  441. }
  442. /**
  443. * <B>方法名:getDateWeek()</B><BR>
  444. * <B>说明:获取当前日期, 格式:yyyy-MM-dd HH:mm:ss 星期</B><BR>
  445. *
  446. * @return string
  447. */
  448. public static String getDateWeek() {
  449. return getDate("yyyy-MM-dd HH:mm:ss") + getWeek();
  450. }
  451. /**
  452. * <B>方法名:getWeekDate()</B><BR>
  453. * <B>说明:获取当前日期,格式:"星期 yyyy-MM-dd HH:mm:ss"</B><BR>
  454. *
  455. * @return string
  456. */
  457. public static String getWeekDate() {
  458. return getWeek() + " " + getDate("yyyy-MM-dd HH:mm:ss");
  459. }
  460. /**
  461. * <B>方法名:getDateWeeks()</B><BR>
  462. * <B>说明:获取当前日期,格式:"yyyy-MM-dd 星期"</B><BR>
  463. *
  464. * @return string
  465. */
  466. public static String getDateWeeks() {
  467. return getDate("yyyy-MM-dd") + getWeek();
  468. }
  469. /**
  470. * <B>方法名:getDateWeeks()</B><BR>
  471. * <B>说明:获取当前日期,格式:"MM月dd日 星期"</B><BR>
  472. *
  473. * @return string
  474. */
  475. public static String getDateWeekmd() {
  476. return getDate("MM月dd日") + getWeek();
  477. }
  478. /**
  479. * <B>方法名:getDateWeeks()</B><BR>
  480. * <B>说明:获取当前日期,格式:"MM-dd 星期"</B><BR>
  481. *
  482. * @return string
  483. */
  484. public static String getDateWeekmdC() {
  485. return getDate("MM-dd") + getWeek();
  486. }
  487. /**
  488. * <B>方法名:getDateWeekMdHm()</B><BR>
  489. * <B>说明:获取当前日期,格式:"MM-dd 星期 HH:mm"</B><BR>
  490. *
  491. * @return string
  492. */
  493. public static String getDateWeekMdHm() {
  494. return getDate("MM-dd") + getWeek() + " " + getDate("HH:mm");
  495. }
  496. /**
  497. * <B>方法名:getDateWeekMdHmC()</B><BR>
  498. * <B>说明:获取当前日期,格式:"MM月dd日 星期 HH:mm"</B><BR>
  499. *
  500. * @return string
  501. */
  502. public static String getDateWeekMdHmC() {
  503. return getDate("MM月dd日") + getWeek() + " " + getDate("HH:mm");
  504. }
  505. /**
  506. * <B>方法名:getDateWeekC</B><BR>
  507. * <B>说明:获取当前日期,格式:"yyyy年MM月dd日 HH时mm分ss秒 星期"</B><BR>
  508. *
  509. * @return string
  510. */
  511. public static String getDateWeekC() {
  512. return getDate("yyyy年MM月dd日 HH时mm分ss秒") + getWeek();
  513. }
  514. /**
  515. * <B>方法名:getDateWeekCh</B><BR>
  516. * <B>说明:获取当前日期,格式: "yyyy年MM月dd日 星期"</B><BR>
  517. *
  518. * @return string
  519. */
  520. public static String getDateWeekCh() {
  521. return getDate("yyyy年MM月dd日") + getWeek();
  522. }
  523. /**
  524. * <B>方法名:getWeekCDate</B><BR>
  525. * <B>说明:获取当前日期,格式: "yyyy年MM月dd日 星期 HH时mm分ss秒"</B><BR>
  526. *
  527. * @return string
  528. */
  529. public static String getWeekCDate() {
  530. return getDateWeekCh() + " " + getDate("HH时mm分ss秒");
  531. }
  532. /**
  533. * <B>方法名:getWeekE</B><BR>
  534. * <B>说明:星期-英式</B><BR>
  535. *
  536. * @return 根据当前日期返回星期数,如:Sunday
  537. */
  538. public static String getWeekE() {
  539. Calendar car = Calendar.getInstance();
  540. int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
  541. return getNumToWeekE(weeknum);
  542. }
  543. /**
  544. * <B>方法名:getWeekEn</B><BR>
  545. * <B>说明:星期-英式2</B><BR>
  546. *
  547. * @return 根据当前日期返回星期数,如:Mon.
  548. */
  549. public static String getWeekEn() {
  550. Calendar car = Calendar.getInstance();
  551. int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
  552. return getNumToWeekEh(weeknum);
  553. }
  554. /**
  555. * <B>方法名:getWeekOfDateE(String value)</B><BR>
  556. * <B>说明:星期-英1</B><BR>
  557. * @param value 日期变量 yyyy-MM-dd
  558. * @return 根据指定日期返回星期数,如:Sunday
  559. */
  560. public static String getWeekOfDateE(String value){
  561. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  562. Calendar car=Calendar.getInstance();
  563. Date date=null;
  564. try {
  565. date=sdf.parse(value);
  566. }catch(ParseException e){
  567. e.printStackTrace();
  568. }
  569. car.setTime(date);
  570. return getNumToWeekE(car.get(Calendar.DAY_OF_WEEK)-1);
  571. }
  572. /**
  573. * <B>方法名:getWeekOfDateEn(String value)</B><BR>
  574. * <B>说明:星期-英2</B><BR>
  575. * @param value 日期变量 yyyy-MM-dd
  576. * @return 根据指定日期返回星期数,如:Mon.
  577. */
  578. public static String getWeekOfDateEn(String value){
  579. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  580. Calendar car=Calendar.getInstance();
  581. Date date=null;
  582. try {
  583. date=sdf.parse(value);
  584. }catch(ParseException e){
  585. e.printStackTrace();
  586. }
  587. car.setTime(date);
  588. return getNumToWeekEh(car.get(Calendar.DAY_OF_WEEK)-1);
  589. }
  590. /**
  591. * <B>方法名:getMonthE</B><BR>
  592. * <B>说明:月份-英式</B><BR>
  593. *
  594. * @return 根据当前日期返回月份数,如:August
  595. */
  596. public static String getMonthE() {
  597. Calendar car = Calendar.getInstance();
  598. int Monthnum = car.get(Calendar.MONTH);
  599. return getMonthE(Monthnum);
  600. }
  601. /**
  602. * <B>方法名:getMonthEn</B><BR>
  603. * <B>说明:月份-英式2</B><BR>
  604. *
  605. * @return 根据当前日期返回月份数,如:Aug.
  606. */
  607. public static String getMonthEn() {
  608. Calendar car = Calendar.getInstance();
  609. int Monthnum = car.get(Calendar.MONTH);
  610. return getMonthEn(Monthnum);
  611. }
  612. /**
  613. * <B>方法名:getMonthOfDateE(String value)</B><BR>
  614. * <B>说明:月份-英1</B><BR>
  615. * @param value 日期变量 yyyy-MM-dd
  616. * @return 根据指定日期返回月份数,如:August
  617. */
  618. public static String getMonthOfDateE(String value){
  619. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  620. Calendar car=Calendar.getInstance();
  621. Date date=null;
  622. try {
  623. date=sdf.parse(value);
  624. }catch(ParseException e){
  625. e.printStackTrace();
  626. }
  627. car.setTime(date);
  628. return getMonthE(car.get(Calendar.MONTH));
  629. }
  630. /**
  631. * <B>方法名:getMonthOfDateEn(String value)</B><BR>
  632. * <B>说明:月份-英2</B><BR>
  633. * @param value 日期变量 yyyy-MM-dd
  634. * @return 根据指定日期返回月份数,如:Aug.
  635. */
  636. public static String getMonthOfDateEn(String value){
  637. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  638. Calendar car=Calendar.getInstance();
  639. Date date=null;
  640. try {
  641. date=sdf.parse(value);
  642. }catch(ParseException e){
  643. e.printStackTrace();
  644. }
  645. car.setTime(date);
  646. return getMonthEn(car.get(Calendar.MONTH));
  647. }
  648. /**
  649. * <B>方法名:getDateE()</B><BR>
  650. * <B>说明:日期-英版1</B><BR>
  651. * @return String 如:Wednesday,December 28,2016
  652. */
  653. public static String getDateE(){
  654. return getWeekE()+","+getMonthE()+" "+getDate("dd")+","+getDate("yyyy");
  655. }
  656. /**
  657. * <B>方法名:getDateEn()</B><BR>
  658. * <B>说明:日期-英版2</B><BR>
  659. * @return String 如:Wed.Dec.28, 2016
  660. */
  661. public static String getDateEn(){
  662. return getWeekEn()+getMonthEn()+getDate("dd")+", "+getDate("yyyy");
  663. }
  664. /**
  665. * <B>方法名:getDateEng()</B><BR>
  666. * <B>说明:日期-英版3</B><BR>
  667. * @return String 如:Dec.28, 2016
  668. */
  669. public static String getDateEng(){
  670. return getMonthEn()+" "+getDate("dd")+", "+getDate("yyyy");
  671. }
  672. /**
  673. * <B>方法名:getDateWeekE(String value)</B><BR>
  674. * <B>说明:指定日期转英式格式日期。</B><BR>
  675. * @param value 日期变量 yyyy-MM-dd
  676. * @return String 如:Sun.Feb.28, 2016
  677. *
  678. */
  679. public static String getDateWeekE(String value){
  680. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  681. Calendar car=Calendar.getInstance();
  682. Date date=null;
  683. try {
  684. date=sdf.parse(value);
  685. }catch(ParseException e){
  686. e.printStackTrace();
  687. }
  688. car.setTime(date);
  689. return getWeekOfDateEn(value)+getMonthOfDateEn(value)+car.get(Calendar.DATE)+", "+car.get(Calendar.YEAR);
  690. }
  691. /**
  692. * <B>方法名:getDateWeekEn(String value)</B><BR>
  693. * <B>说明:指定日期转英式格式日期。</B><BR>
  694. * @param value 日期变量 yyyy-MM-dd
  695. * @return String 如:Wednesday,December 28, 2016
  696. *
  697. */
  698. public static String getDateWeekEn(String value){
  699. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  700. Calendar car=Calendar.getInstance();
  701. Date date=null;
  702. try {
  703. date=sdf.parse(value);
  704. }catch(ParseException e){
  705. e.printStackTrace();
  706. }
  707. car.setTime(date);
  708. return getWeekOfDateE(value)+","+getMonthOfDateE(value)+" "+car.get(Calendar.DATE)+", "+car.get(Calendar.YEAR);
  709. }
  710. /**
  711. * <B>方法名:getWeekNum(Date date)</B><BR>
  712. * <B>说明:根据指定日期返回其星期数,周日标识为0 周一标识为1</B><BR>
  713. *
  714. * @param date 日期变量
  715. * @return int 返回其星期数
  716. */
  717. public static int getWeekNum(Date date) {
  718. Calendar car = Calendar.getInstance();
  719. car.setTime(date);
  720. return car.get(Calendar.DAY_OF_WEEK);
  721. }
  722. /**
  723. * <B>方法名:getWeekNums(Date date)</B><BR>
  724. * <B>说明:根据指定日期返回其星期数,周日标识为7 周一标识为1</B><BR>
  725. *
  726. * @param date 日期变量
  727. * @return int 返回其星期数
  728. */
  729. public static int getWeekNums(Date date) {
  730. Calendar car = Calendar.getInstance();
  731. car.setTime(date);
  732. int week = car.get(Calendar.DAY_OF_WEEK);
  733. int weeknum;
  734. if (week == Calendar.SUNDAY) {
  735. weeknum = 7;
  736. } else {
  737. weeknum = week - 1;
  738. }
  739. return weeknum;
  740. }
  741. /*
  742. * 当年第一天
  743. * */
  744. public static Date getYearFirstDay() {
  745. Calendar car = Calendar.getInstance();
  746. car.set(Calendar.HOUR_OF_DAY, 0);
  747. car.set(Calendar.MINUTE, 0);
  748. car.set(Calendar.SECOND, 0);
  749. car.set(Calendar.MILLISECOND, 0);
  750. int day = car.getActualMinimum(Calendar.DAY_OF_YEAR);
  751. car.set(Calendar.DAY_OF_YEAR, day);
  752. return car.getTime();
  753. }
  754. /* 当年最后一天*/
  755. public static Date getYearLastDay() {
  756. Calendar car = Calendar.getInstance();
  757. car.set(Calendar.HOUR_OF_DAY, 23);
  758. car.set(Calendar.MINUTE, 59);
  759. car.set(Calendar.SECOND, 59);
  760. car.set(Calendar.MILLISECOND, 999);
  761. int day = car.getActualMaximum(Calendar.DAY_OF_YEAR);
  762. car.set(Calendar.DAY_OF_YEAR, day);
  763. return car.getTime();
  764. }
  765. /*Calendar*/
  766. /**
  767. * <B>方法名:getDateToCalendar(Date date)</B><BR>
  768. * <B>说明:Date转Calendar</B>
  769. *
  770. * @param value Calendar日期变量
  771. * @return String
  772. */
  773. public static Calendar getDateToCalendar(Date value) {
  774. Calendar car = Calendar.getInstance();
  775. car.setTime(value);
  776. return car;
  777. }
  778. /**
  779. * <B>方法名:getCalendarToStr(Calendar car, String datetype)</B><BR>
  780. * <B>说明:Calendar日期转规定格式日期</B>
  781. *
  782. * @param car Calendar日期变量
  783. * @param datetype 自定义日期类型
  784. * @return String 返回规定格式的日期
  785. */
  786. public static String getCalendarToStr(Calendar car, String datetype) {
  787. SimpleDateFormat sdf = new SimpleDateFormat(datetype);
  788. if (car != null) {
  789. return sdf.format(car.getTime());
  790. } else {
  791. return "";
  792. }
  793. }
  794. /**
  795. * <B>方法名: getCalendarToStr(Calendar car)</B><BR>
  796. * <B>说明:Calendar日期转yyyy-MM-dd HH:mm:ss</B>
  797. *
  798. * @param car Calendar日期变量
  799. * @return String
  800. */
  801. public static String getCalendarToStr(Calendar car) {
  802. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  803. if (car != null) {
  804. return sdf.format(car.getTime());
  805. } else {
  806. return "";
  807. }
  808. }
  809. /**
  810. * <B>方法名:getCalendarToStrHm(Calendar car)</B><BR>
  811. * <B>说明:Calendar日期转yyyy-MM-dd HH:mm</B>
  812. *
  813. * @param car Calendar日期变量
  814. * @return String
  815. */
  816. public static String getCalendarToStrHm(Calendar car) {
  817. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  818. if (car != null) {
  819. return sdf.format(car.getTime());
  820. } else {
  821. return "";
  822. }
  823. }
  824. /**
  825. * <B>方法名: getCalendarToStryMd(Calendar car)</B><BR>
  826. * <B>说明:Calendar日期转yyyy-MM-dd</B>
  827. *
  828. * @param car Calendar日期变量
  829. * @return String
  830. */
  831. public static String getCalendarToStryMd(Calendar car) {
  832. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  833. if (car != null) {
  834. return sdf.format(car.getTime());
  835. } else {
  836. return "";
  837. }
  838. }
  839. /**
  840. * <B>方法名:getCalendarHm(Calendar car)</B><BR>
  841. * <B>说明:Calendar日期转HH:mm</B>
  842. *
  843. * @param car Calendar日期变量
  844. * @return String
  845. */
  846. public static String getCalendarHm(Calendar car) {
  847. SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  848. if (car != null) {
  849. return sdf.format(car.getTime());
  850. } else {
  851. return "";
  852. }
  853. }
  854. /**
  855. * <B>方法名: getCalendarHms(Calendar car)</B><BR>
  856. * <B>说明:Calendar日期转HH:mm:ss</B>
  857. *
  858. * @param car Calendar日期变量
  859. * @return String
  860. */
  861. public static String getCalendarHms(Calendar car) {
  862. SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  863. if (car != null) {
  864. return sdf.format(car.getTime());
  865. } else {
  866. return "";
  867. }
  868. }
  869. /*Calendar end*/
  870. public static String getNumToWeek(int weeknum) {
  871. String[] weekC = {"日", "一", "二", "三", "四", "五", "六"};
  872. return " 星期" + weekC[weeknum];
  873. }
  874. public static String getNumToWeekE(int weeknum) {
  875. String[] weekE = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
  876. return weekE[weeknum];
  877. }
  878. public static String getNumToWeekEh(int weeknum) {
  879. String[] weekEn = {"Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."};
  880. return weekEn[weeknum];
  881. }
  882. public static String getMonthE(int monthnum){
  883. String[] month={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
  884. return month[monthnum];
  885. }
  886. public static String getMonthEn(int monthnum){
  887. String[] month={"Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."};
  888. return month[monthnum];
  889. }
  890. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/260545
推荐阅读
相关标签
  

闽ICP备14008679号