时间相关工具类

  1. public class DateUtil {
  2. private DateUtil(){}
  3. /**
  4. * 枚举日期格式
  5. */
  6. public enum DatePattern{
  7. /**
  8. * 格式:"yyyy-MM-dd HH:mm:ss"
  9. */
  10. ALL_TIME{public String getValue(){return "yyyy-MM-dd HH:mm:ss";}},
  11. /**
  12. * 格式:"yyyy-MM"
  13. */
  14. ONLY_MONTH{public String getValue(){return "yyyy-MM";}},
  15. /**
  16. * 格式:"yyyy-MM-dd"
  17. */
  18. ONLY_DAY{public String getValue(){return "yyyy-MM-dd";}},
  19. /**
  20. * 格式:"yyyy-MM-dd HH"
  21. */
  22. ONLY_HOUR{public String getValue(){return "yyyy-MM-dd HH";}},
  23. /**
  24. * 格式:"yyyy-MM-dd HH:mm"
  25. */
  26. ONLY_MINUTE{public String getValue(){return "yyyy-MM-dd HH:mm";}},
  27. /**
  28. * 格式:"MM-dd"
  29. */
  30. ONLY_MONTH_DAY{public String getValue(){return "MM-dd";}},
  31. /**
  32. * 格式:"MM-dd HH:mm"
  33. */
  34. ONLY_MONTH_SEC{public String getValue(){return "MM-dd HH:mm";}},
  35. /**
  36. * 格式:"HH:mm:ss"
  37. */
  38. ONLY_TIME{public String getValue(){return "HH:mm:ss";}},
  39. /**
  40. * 格式:"HH:mm"
  41. */
  42. ONLY_HOUR_MINUTE{public String getValue(){return "HH:mm";}};
  43. public abstract String getValue();
  44. }
  45. /**
  46. * 获取当前时间
  47. * @return 返回当前时间,格式2017-05-04 10:54:21
  48. */
  49. public static String getNowDate(DatePattern pattern){
  50. String dateString = null;
  51. Calendar calendar = Calendar.getInstance();
  52. Date dateNow = calendar.getTime();
  53. SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(),Locale.CHINA);
  54. dateString = sdf.format(dateNow);
  55. return dateString;
  56. }
  57. /**
  58. * 将一个日期字符串转换成Data对象
  59. * @param dateString 日期字符串
  60. * @param pattern 转换格式
  61. * @return 返回转换后的日期对象
  62. */
  63. public static Date stringToDate(String dateString, DatePattern pattern){
  64. Date date = null;
  65. SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(),Locale.CHINA);
  66. try {
  67. date = sdf.parse(dateString);
  68. } catch (ParseException e) {
  69. e.printStackTrace();
  70. }
  71. return date;
  72. }
  73. /**
  74. * 将date转换成字符串
  75. * @param date 日期
  76. * @param pattern 日期的目标格式
  77. * @return
  78. */
  79. public static String dateToString(Date date, DatePattern pattern){
  80. String string = "";
  81. SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(), Locale.CHINA);
  82. string = sdf.format(date);
  83. return string;
  84. }
  85. /**
  86. * 获取指定日期周几
  87. * @param date 指定日期
  88. * @return
  89. * 返回值为: "周日", "周一", "周二", "周三", "周四", "周五", "周六"
  90. */
  91. public static String getWeekOfDate(Date date){
  92. String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
  93. Calendar calendar = Calendar.getInstance();
  94. calendar.setTime(date);
  95. int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
  96. if (week < 0)
  97. week = 0;
  98. return weekDays[week];
  99. }
  100. /**
  101. * 获取指定日期对应周几的序列
  102. * @param date 指定日期
  103. * @return 周一:1 周二:2 周三:3 周四:4 周五:5 周六:6 周日:7
  104. */
  105. public static int getIndexWeekOfDate(Date date){
  106. Calendar calendar = Calendar.getInstance();
  107. calendar.setTime(date);
  108. int index = calendar.get(Calendar.DAY_OF_WEEK);
  109. if(index == 1){
  110. return 7;
  111. }else{
  112. return --index;
  113. }
  114. }
  115. /**
  116. * 返回当前月份
  117. * @return
  118. */
  119. public static int getNowMonth(){
  120. Calendar calendar = Calendar.getInstance();
  121. return calendar.get(Calendar.MONTH) + 1;
  122. }
  123. /**
  124. * 获取当前月号
  125. * @return
  126. */
  127. public static int getNowDay(){
  128. Calendar calendar = Calendar.getInstance();
  129. return calendar.get(Calendar.DATE);
  130. }
  131. /**
  132. * 获取当前年份
  133. * @return
  134. */
  135. public static int getNowYear(){
  136. Calendar calendar = Calendar.getInstance();
  137. return calendar.get(Calendar.YEAR);
  138. }
  139. /**
  140. * 获取本月份的天数
  141. * @return
  142. */
  143. public static int getNowDaysOfMonth(){
  144. Calendar calendar = Calendar.getInstance();
  145. return daysOfMonth(calendar.get(Calendar.YEAR),calendar.get(Calendar.DATE) + 1);
  146. }
  147. /**
  148. * 获取指定月份的天数
  149. * @param year 年份
  150. * @param month 月份
  151. * @return 对应天数
  152. */
  153. public static int daysOfMonth(int year,int month){
  154. switch(month){
  155. case 1:
  156. case 3:
  157. case 5:
  158. case 7:
  159. case 8:
  160. case 10:
  161. case 12:
  162. return 31;
  163. case 4:
  164. case 6:
  165. case 9:
  166. case 11:
  167. return 30;
  168. case 2:
  169. if((year % 4 ==0 && year % 100 == 0) || year % 400 != 0){
  170. return 29;
  171. }else{
  172. return 28;
  173. }
  174. default:
  175. return -1;
  176. }
  177. }
  178. }

Android-DateUtil工具类的更多相关文章

  1. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  2. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  3. 【转】Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefe ...

  4. Android基础工具类重构系列一Toast

    前言: 一直在考虑写一下Android实际项目中的一些总结,翻看CSDN博客,上一篇已经是一年多曾经. 本系列定位Android基础工具类重构.旨在记录实际项目中经经常使用到的一些工具类,比方Toas ...

  5. (转载)android 一些工具类汇总

    android 一些工具类汇总 作者:曾田生z 字体:[增加 减小] 类型:转载 时间:2016-08-14我要评论 本文给大家汇总介绍了一些常用的Android工具类,非常的简单实用,有需要的小伙伴 ...

  6. Android Joda-time工具类

    Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成.   Joda- ...

  7. 随笔分类 - Android之工具类

    Android之文件搜索工具类 /** * @detail 搜索sdcard文件 * @param 需要进行文件搜索的目录 * @param 过滤搜索文件类型 */ private void sear ...

  8. Android 系统工具类SystemUtils

    包含的功能有: 获取系统中所有APP应用.获取用户安装的APP应用.根据包名和Activity启动类查询应用信息.跳转到WIFI设置.WIFI网络开关.移动网络开关.GPS开关 当前若关则打开 当前若 ...

  9. Android Sqlite 工具类封装

    鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLit ...

  10. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

随机推荐

  1. jdbcTemplate in

    参考 http://blog.csdn.net/gaopeng0071/article/details/75049952 使用NamedParameterJdbcTemplate public cla ...

  2. cf-Round542-Div2-C(暴力+DFS)

    题目链接:http://codeforces.com/contest/1130/problem/C 思路: 利用DFS搜索(r1,c1)和(r2,c2)可到达的点的集合,分别存在a1,a2中,若a1= ...

  3. c++ 根据生产日期,保质期求出过期时间

    第4关:计算日期 挑战任务 我们吃的食物都有保质期,现在食品监督管理局想要制作一个能准确计算食品过期日期的小程序,需要请你来进行设计. 例如:A食品在2018年1月1日生产,保质期是20天,则它的过期 ...

  4. 第十章 泛型程序设计与C++标准模板库 泛型程序设计及STL的结构

  5. centos 系统下彻底删除mysql

    yum remove mysql mysql-server mysql-libs compat-mysql51 rm -rf /var/lib/mysql (删除数据库) rm /etc/my.cnf ...

  6. C++调试帮助

    assert预处理宏 assert是一种预处理宏,所谓预处理其实是一个预处理变量,其行为类似于内联函数,assert宏使用一个表达式作为其条件: assert(expr) 首先是对expr进行求值,如 ...

  7. MySQL优化update操作

    http://www.cnblogs.com/jevo/p/3314928.html 用replace代替delete和insert. insert用批量. 用延迟(类似于缓冲,会否饿死) 大量插入, ...

  8. SQL Server优化50法(转载)

           虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种:     1.没有索引或者没有用到索引(这是查询慢最常见的问题 ...

  9. 使用Ansible部署etcd 3.2高可用集群

    之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...

  10. VMware安装centos虚拟机 通过NAT与主机互通并能上网

    1.关于centos虚拟机的安装,我这里就不详细说明了,网上有很多教程,默认你们已经安装好.       (我的环境是centos6.6 x86 最小安装版) 2.右键虚拟主机,选择设置选项. 3.在 ...