获取时间/日期工具类:格式化日期,获取当前时间,指定时间,上一月,指定时间的毫秒数

布满荆棘的人生 2022-06-12 14:09 441阅读 0赞
  1. import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. public class DateTimeUtils {
  6. // 默认显示日期的格式
  7. public static final String DATE_FORMAT = "yyyy-MM-dd";
  8. // 默认显示日期时间的格式
  9. public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
  10. // 默认显示日期时间的格式
  11. public static final String DATE_TIME_MILLIS_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
  12. // 显示年月日时分的格式
  13. public static final String DATE_TIME_MINUTE_FORMAT = "yyyy-MM-dd HH:mm";
  14. private final static DateFormat mDateFormat = new SimpleDateFormat(DATE_FORMAT);
  15. private final static DateFormat mDateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
  16. private final static DateFormat mDateTimeMillisFormat = new SimpleDateFormat(DATE_TIME_MILLIS_FORMAT);
  17. private final static DateFormat mDataTimeMinuteFormat = new SimpleDateFormat(DATE_TIME_MINUTE_FORMAT);
  18. /**
  19. * @see 获取当前时间年份
  20. */
  21. public static int GetYear() {
  22. return Calendar.getInstance().get(Calendar.YEAR);
  23. }
  24. /**
  25. * @see 获取指定时间年份
  26. */
  27. public static int GetYear(long time) {
  28. Calendar calendar = Calendar.getInstance();
  29. calendar.setTimeInMillis(time);
  30. return calendar.get(Calendar.YEAR);
  31. }
  32. /**
  33. * @see 获取上一个月的年份
  34. */
  35. public static int GetYearByLastMonth() {
  36. Calendar calendar = Calendar.getInstance();
  37. calendar.add(Calendar.MONTH, -1);
  38. return calendar.get(Calendar.YEAR);
  39. }
  40. /**
  41. * @see 获取当前时间月份
  42. */
  43. public static int GetMonth() {
  44. return Calendar.getInstance().get(Calendar.MONTH) + 1;
  45. }
  46. /**
  47. * @see 获取上一个月的月份
  48. */
  49. public static int GetLastMonth() {
  50. Calendar calendar = Calendar.getInstance();
  51. calendar.add(Calendar.MONTH, -1);
  52. return calendar.get(Calendar.MONTH) + 1;
  53. }
  54. /**
  55. * @see 获取指定时间月份
  56. */
  57. public static int GetMonth(long time) {
  58. Calendar calendar = Calendar.getInstance();
  59. calendar.setTimeInMillis(time);
  60. return calendar.get(Calendar.MONTH) + 1;
  61. }
  62. /**
  63. * @see 获取当前时间日期
  64. */
  65. public static int GetMonthDay() {
  66. return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
  67. }
  68. /**
  69. * @see 获取指定时间日期
  70. */
  71. public static int GetMonthDay(long time) {
  72. Calendar calendar = Calendar.getInstance();
  73. calendar.setTimeInMillis(time);
  74. return calendar.get(Calendar.DAY_OF_MONTH);
  75. }
  76. /**
  77. * @see 获取当前时间:Hour
  78. */
  79. public static int GetHour() {
  80. return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
  81. }
  82. /**
  83. * @see 获取指定时间:Hour
  84. */
  85. public static int GetHour(long time) {
  86. Calendar calendar = Calendar.getInstance();
  87. calendar.setTimeInMillis(time);
  88. return calendar.get(Calendar.HOUR_OF_DAY);
  89. }
  90. /**
  91. * @see 获取当前时间:Minute
  92. */
  93. public static int GetMinute() {
  94. return Calendar.getInstance().get(Calendar.MINUTE);
  95. }
  96. /**
  97. * @see 获取指定时间:Minute
  98. */
  99. public static int GetMinute(long time) {
  100. Calendar calendar = Calendar.getInstance();
  101. calendar.setTimeInMillis(time);
  102. return calendar.get(Calendar.MINUTE);
  103. }
  104. /**
  105. * @see 获取当前时间:Second
  106. */
  107. public static int GetSecond() {
  108. return Calendar.getInstance().get(Calendar.SECOND);
  109. }
  110. /**
  111. * @see 获取指定时间:Second
  112. */
  113. public static int GetSecond(long time) {
  114. Calendar calendar = Calendar.getInstance();
  115. calendar.setTimeInMillis(time);
  116. return calendar.get(Calendar.SECOND);
  117. }
  118. /**
  119. * @see 获取当前时间:Week
  120. */
  121. public static int GetWeek() {
  122. return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
  123. }
  124. /**
  125. * @see 获取指定时间:Week
  126. */
  127. public static int GetWeek(long time) {
  128. Calendar calendar = Calendar.getInstance();
  129. calendar.setTimeInMillis(time);
  130. return calendar.get(Calendar.DAY_OF_WEEK);
  131. }
  132. /**
  133. * @see 是否为当月的第一天
  134. */
  135. public static boolean IsFristDayInMonth() {
  136. return 1 == GetMonthDay();
  137. }
  138. /**
  139. * @see 是否为当月的第一天
  140. */
  141. public static boolean IsFristDayInMonth(long time) {
  142. return 1 == GetMonthDay(time);
  143. }
  144. /**
  145. * @see 是否为当年的第一月
  146. */
  147. public static boolean IsFristMonthInYear() {
  148. return 1 == GetMonth();
  149. }
  150. /**
  151. * @see 是否为当年的第一月
  152. */
  153. public static boolean IsFristMonthInYear(long time) {
  154. return 1 == GetMonth(time);
  155. }
  156. /**
  157. * @see 当前时间 => 日期字符串 : 年-月-日
  158. */
  159. public static String GetDateString() {
  160. return mDateFormat.format(new Date());
  161. }
  162. /**
  163. * @see 指定时间 => 日期字符串 : 年-月-日
  164. */
  165. public static String ConvertToDateString(long time) {
  166. return mDateFormat.format(new Date(time));
  167. }
  168. /**
  169. * @see 日期字符串 => 指定时间
  170. */
  171. public static Date ConvertToDate(String date) throws Exception {
  172. return mDateFormat.parse(date);
  173. }
  174. /**
  175. * @see 当前时间 => 时间字符串 : 年-月-日 时:分:秒
  176. */
  177. public static String GetDateTimeString() {
  178. return mDateTimeFormat.format(new Date());
  179. }
  180. /**
  181. * @see 指定时间 => 时间字符串 : 年-月-日 时:分:秒
  182. */
  183. public static String ConvertToDateTimeString(long time) {
  184. return mDateTimeFormat.format(new Date(time));
  185. }
  186. /**
  187. * @see 时间字符串 => 指定时间 年:月:日
  188. */
  189. public static Date ConvertToDateTime(String date) throws Exception {
  190. return mDateTimeFormat.parse(date);
  191. }
  192. /**
  193. * @see 时间字符串 => 指定时间 年:月:日 时:分:秒
  194. */
  195. public static long ConvertToLongTimeWithDateTime(String dateTime) {
  196. try {
  197. return ConvertToDateTime(dateTime).getTime();
  198. } catch (Exception e) {
  199. e.printStackTrace();
  200. }
  201. return 0;
  202. }
  203. /**
  204. * @see 时间字符串 => 指定时间
  205. */
  206. public static long ConvertToLongTimeWithDate(String date) {
  207. try {
  208. return ConvertToDate(date).getTime();
  209. } catch (Exception e) {
  210. e.printStackTrace();
  211. }
  212. return 0;
  213. }
  214. /**
  215. * @see 获取时间字符串:年-月-日 时:分:秒.毫秒
  216. */
  217. public static String GetDateTimeMillisString() {
  218. return mDateTimeMillisFormat.format(new Date());
  219. }
  220. /**
  221. * @see 获取时间字符串:年-月-日 时:分
  222. */
  223. public static String GetDateTimeMinuteString() {
  224. return mDataTimeMinuteFormat.format(new Date());
  225. }
  226. /**
  227. * @return 昨日指定时间的毫秒数(24小时制)
  228. */
  229. public static long GetYesterdaywAppointedTime(int hour, int minute, int second) {
  230. Calendar calendar = Calendar.getInstance();
  231. calendar.set(Calendar.HOUR_OF_DAY, hour);
  232. calendar.set(Calendar.MINUTE, minute);
  233. calendar.set(Calendar.SECOND, second);
  234. calendar.set(Calendar.MILLISECOND, 0);
  235. calendar.add(Calendar.DAY_OF_MONTH, -1);
  236. return calendar.getTimeInMillis();
  237. }
  238. /**
  239. * @return 今日指定时间的毫秒数(24小时制)
  240. */
  241. public static long GetTodayAppointedTime(int hour, int minute, int second) {
  242. Calendar calendar = Calendar.getInstance();
  243. calendar.set(Calendar.HOUR_OF_DAY, hour);
  244. calendar.set(Calendar.MINUTE, minute);
  245. calendar.set(Calendar.SECOND, second);
  246. calendar.set(Calendar.MILLISECOND, 0);
  247. return calendar.getTimeInMillis();
  248. }
  249. /**
  250. * @return 明日指定时间的毫秒数(24小时制)
  251. */
  252. public static long GetTomorrowAppointedTime(int hour, int minute, int second) {
  253. Calendar calendar = Calendar.getInstance();
  254. calendar.set(Calendar.HOUR_OF_DAY, hour);
  255. calendar.set(Calendar.MINUTE, minute);
  256. calendar.set(Calendar.SECOND, second);
  257. calendar.set(Calendar.MILLISECOND, 0);
  258. calendar.add(Calendar.DAY_OF_MONTH, +1);
  259. return calendar.getTimeInMillis();
  260. }
  261. /**
  262. * @return 获取周日24点的时间
  263. */
  264. public static long GetSundayZeroTime() {
  265. Calendar calendar = Calendar.getInstance();
  266. if (calendar.get(Calendar.DAY_OF_WEEK) > Calendar.SUNDAY) {
  267. calendar.add(Calendar.WEEK_OF_MONTH, 1);
  268. }
  269. calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  270. calendar.set(Calendar.HOUR_OF_DAY, 0);
  271. calendar.set(Calendar.MINUTE, 0);
  272. calendar.set(Calendar.SECOND, 0);
  273. calendar.set(Calendar.MILLISECOND, 0);
  274. return calendar.getTimeInMillis();
  275. }
  276. /**
  277. * @see 获取当前日期与指定日期相差的天数
  278. */
  279. public static int CompareByDay(String date) {
  280. try {
  281. return (int) (((new Date()).getTime() - ConvertToDate(date).getTime()) / (24 * 60 * 60 * 1000));
  282. } catch (Exception e) {
  283. e.printStackTrace();
  284. return -1;
  285. }
  286. }
  287. /**
  288. * @see 是否为同一月
  289. */
  290. public static boolean IsCurrentMonth(long time) {
  291. return GetYear() == GetYear(time) && GetMonth() == GetMonth(time);
  292. }
  293. /**
  294. * @see 是否为同一天
  295. */
  296. public static boolean IsCurrentDay(long time) {
  297. return IsCurrentMonth(time) && GetMonthDay() == GetMonthDay(time);
  298. }
  299. /**
  300. * @see 根据上月总天数
  301. */
  302. public static int GetLastMonthDays() {
  303. Calendar cal = Calendar.getInstance();
  304. cal.set(Calendar.DAY_OF_MONTH, 1);
  305. cal.add(Calendar.DAY_OF_MONTH, -1);
  306. return cal.get(Calendar.DAY_OF_MONTH);
  307. }
  308. /**
  309. * @see 获取当月总天数
  310. */
  311. public static int GetCurrentMonthDays() {
  312. Calendar a = Calendar.getInstance();
  313. a.set(Calendar.DATE, 1);
  314. a.roll(Calendar.DATE, -1);
  315. return a.get(Calendar.DATE);
  316. }
  317. }

发表评论

表情:
评论列表 (有 0 条评论,441人围观)

还没有评论,来说两句吧...

相关阅读