本文转载自:http://blog.csdn.net/xuduzhoud/article/details/27526177

全部代码如下:

DateUtil.java

  1. package com.example.tset;
  2.  
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7.  
  8. /**
  9. * 日期操作工具类.
  10. *
  11. * @author shimiso
  12. * http://blog.csdn.net/xuduzhoud/article/details/27526177
  13. */
  14.  
  15. public class DateUtil {
  16.  
  17. private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
  18.  
  19. public static Date str2Date(String str) {
  20. return str2Date(str, null);
  21. }
  22.  
  23. public static Date str2Date(String str, String format) {
  24. if (str == null || str.length() == 0) {
  25. return null;
  26. }
  27. if (format == null || format.length() == 0) {
  28. format = FORMAT;
  29. }
  30. Date date = null;
  31. try {
  32. SimpleDateFormat sdf = new SimpleDateFormat(format);
  33. date = sdf.parse(str);
  34.  
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. }
  38. return date;
  39.  
  40. }
  41.  
  42. public static Calendar str2Calendar(String str) {
  43. return str2Calendar(str, null);
  44.  
  45. }
  46.  
  47. public static Calendar str2Calendar(String str, String format) {
  48.  
  49. Date date = str2Date(str, format);
  50. if (date == null) {
  51. return null;
  52. }
  53. Calendar c = Calendar.getInstance();
  54. c.setTime(date);
  55.  
  56. return c;
  57.  
  58. }
  59.  
  60. public static String date2Str(Calendar c) {// yyyy-MM-dd HH:mm:ss
  61. return date2Str(c, null);
  62. }
  63.  
  64. public static String date2Str(Calendar c, String format) {
  65. if (c == null) {
  66. return null;
  67. }
  68. return date2Str(c.getTime(), format);
  69. }
  70.  
  71. public static String date2Str(Date d) {// yyyy-MM-dd HH:mm:ss
  72. return date2Str(d, null);
  73. }
  74.  
  75. public static String date2Str(Date d, String format) {// yyyy-MM-dd HH:mm:ss
  76. if (d == null) {
  77. return null;
  78. }
  79. if (format == null || format.length() == 0) {
  80. format = FORMAT;
  81. }
  82. SimpleDateFormat sdf = new SimpleDateFormat(format);
  83. String s = sdf.format(d);
  84. return s;
  85. }
  86.  
  87. public static String getCurDateStr() {
  88. Calendar c = Calendar.getInstance();
  89. c.setTime(new Date());
  90. return c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-"
  91. + c.get(Calendar.DAY_OF_MONTH) + "-"
  92. + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE)
  93. + ":" + c.get(Calendar.SECOND);
  94. }
  95.  
  96. /**
  97. * 获得当前日期的字符串格式
  98. *
  99. * @param format
  100. * @return
  101. */
  102. public static String getCurDateStr(String format) {
  103. Calendar c = Calendar.getInstance();
  104. return date2Str(c, format);
  105. }
  106.  
  107. // 格式到秒
  108. public static String getMillon(long time) {
  109.  
  110. return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(time);
  111.  
  112. }
  113.  
  114. // 格式到天
  115. public static String getDay(long time) {
  116.  
  117. return new SimpleDateFormat("yyyy-MM-dd").format(time);
  118.  
  119. }
  120.  
  121. // 格式到毫秒
  122. public static String getSMillon(long time) {
  123.  
  124. return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS").format(time);
  125.  
  126. }
  127.  
  128. /*
  129. 输入的是String,格式诸如20120102,实现加一天的功能,返回的格式为String,诸如20120103
  130. */
  131. public static String stringDatePlus(String row) throws ParseException{
  132. String year=row.substring(0, 4);
  133. String month=row.substring(4,6);
  134. String day=row.substring(6);
  135. String date1=year+"-"+month+"-"+day;
  136. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  137. Date startDate=sdf.parse(date1);
  138. Calendar cd = Calendar.getInstance();
  139. cd.setTime(startDate);
  140. cd.add(Calendar.DATE, 1);
  141. String dateStr =sdf.format(cd.getTime());
  142. String year1=dateStr.substring(0,4);
  143. String month1=dateStr.substring(5,7);
  144. String day1=dateStr.substring(8);
  145. return year1+month1+day1;
  146. }
  147.  
  148. /*
  149. 输入的是String,格式诸如20120102,实现减一天的功能,返回的格式为String,诸如20120101
  150. */
  151. public static String stringDateDecrease(String row) throws ParseException{
  152. String year=row.substring(0, 4);
  153. String month=row.substring(4,6);
  154. String day=row.substring(6);
  155. String date1=year+"-"+month+"-"+day;
  156. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  157. Date startDate=sdf.parse(date1);
  158. Calendar cd = Calendar.getInstance();
  159. cd.setTime(startDate);
  160. cd.add(Calendar.DATE, -1);
  161. String dateStr =sdf.format(cd.getTime());
  162. String year1=dateStr.substring(0,4);
  163. String month1=dateStr.substring(5,7);
  164. String day1=dateStr.substring(8);
  165. return year1+month1+day1;
  166. }
  167.  
  168. /*
  169. 输入的格式为String,诸如20120101,返回的格式为String,诸如2012-01-01
  170. */
  171. public static String stringDateChange(String date)
  172. {
  173. if(date.length()=="20120101".length()){
  174. String year=date.substring(0, 4);
  175. String month=date.substring(4,6);
  176. String day=date.substring(6);
  177. return year+"-"+month+"-"+day;
  178. }else{
  179. return date;
  180. }
  181.  
  182. }
  183. /**
  184. * 日期向后推一天
  185. * @param date 格式:20120101
  186. * @return 20120102
  187. */
  188. public static String tonextday(String date){
  189. int year = Integer.parseInt(date.substring(0,4));
  190. int month = Integer.parseInt(date.substring(4,6));
  191. int day = Integer.parseInt(date.substring(6));
  192. Calendar calendar = Calendar.getInstance();
  193. calendar.set(year, month-1, day+1);
  194. Date newdate = calendar.getTime();
  195. SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
  196. String da = format.format(newdate);
  197. return da;
  198. }
  199.  
  200. /**
  201. * 获取当前日期上一周的开始日期 (周日)
  202. */
  203. public static String previousWeekByDate(String date) {
  204. int year = Integer.parseInt(date.substring(0,4));
  205. int month = Integer.parseInt(date.substring(4,6));
  206. int day = Integer.parseInt(date.substring(6));
  207. Calendar calendar = Calendar.getInstance();
  208. calendar.set(year, month-1, day);
  209. Date newdate = calendar.getTime();
  210. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  211. Calendar cal = Calendar.getInstance();
  212. cal.setTime(newdate);
  213. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  214. if(1 == dayWeek) {
  215. cal.add(Calendar.DAY_OF_MONTH, -1);
  216. }
  217. cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
  218. int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  219. cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
  220. cal.add(Calendar.WEEK_OF_YEAR, -1);
  221. String imptimeBegin = sdf.format(cal.getTime());
  222. // System.out.println("所在周星期日的日期:"+imptimeBegin);
  223. return imptimeBegin;
  224. }
  225.  
  226. /**
  227. * 获取当前日期上一周的结束日期 (周六)
  228. */
  229. public static String previousWeekEndDayByDate(String date) {
  230. int year = Integer.parseInt(date.substring(0,4));
  231. int month = Integer.parseInt(date.substring(4,6));
  232. int day = Integer.parseInt(date.substring(6));
  233. Calendar calendar = Calendar.getInstance();
  234. calendar.set(year, month-1, day);
  235. Date newdate = calendar.getTime();
  236. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  237. Calendar cal = Calendar.getInstance();
  238. cal.setTime(newdate);
  239. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  240. if(1 == dayWeek) {
  241. cal.add(Calendar.DAY_OF_MONTH, -1);
  242. }
  243. cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
  244. int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  245. cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
  246. cal.add(Calendar.WEEK_OF_YEAR, -1);
  247. String imptimeBegin = sdf.format(cal.getTime());
  248. // System.out.println("星期六的日期:"+imptimeBegin);
  249. return imptimeBegin;
  250. }
  251.  
  252. /**
  253. * 获取当前日期当前一周的开始日期 (周日)
  254. */
  255. public static String getCurrentWeekFirstDayByDate(String date) {
  256. int year = Integer.parseInt(date.substring(0,4));
  257. int month = Integer.parseInt(date.substring(4,6));
  258. int day = Integer.parseInt(date.substring(6));
  259. Calendar calendar = Calendar.getInstance();
  260. calendar.set(year, month-1, day);
  261. Date newdate = calendar.getTime();
  262. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  263. Calendar cal = Calendar.getInstance();
  264. cal.setTime(newdate);
  265. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  266. if(1 == dayWeek) {
  267. cal.add(Calendar.DAY_OF_MONTH, -1);
  268. }
  269. cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
  270. int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  271. cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
  272.  
  273. String imptimeBegin = sdf.format(cal.getTime());
  274. // System.out.println("所在周星期日的日期:"+imptimeBegin);
  275. return imptimeBegin;
  276. }
  277. /**
  278. * 获取当前日期当前一周的结束日期 (周六)
  279. */
  280. public static String getCurrentWeekEndDayByDate(String date) {
  281. int year = Integer.parseInt(date.substring(0,4));
  282. int month = Integer.parseInt(date.substring(4,6));
  283. int day = Integer.parseInt(date.substring(6));
  284. Calendar calendar = Calendar.getInstance();
  285. calendar.set(year, month-1, day);
  286. Date newdate = calendar.getTime();
  287. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  288. Calendar cal = Calendar.getInstance();
  289. cal.setTime(newdate);
  290. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  291. if(1 == dayWeek) {
  292. cal.add(Calendar.DAY_OF_MONTH, -1);
  293. }
  294. cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
  295. int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  296. cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
  297.  
  298. String imptimeBegin = sdf.format(cal.getTime());
  299. return imptimeBegin;
  300. }
  301.  
  302. /**
  303. * 返回上一个月的第一天
  304. * @param date20120304
  305. * @return 20120201
  306. */
  307. public static String previousMonthByDate(String date) {
  308. // TODO Auto-generated method stub
  309. int year = Integer.parseInt(date.substring(0,4));
  310. int month = Integer.parseInt(date.substring(4,6));
  311. int day = Integer.parseInt(date.substring(6));
  312. Calendar calendar = Calendar.getInstance();
  313. calendar.set(year, month-2, 1);
  314. Date newdate = calendar.getTime();
  315. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  316. Calendar cal = Calendar.getInstance();
  317. cal.setTime(newdate);
  318. String imptimeBegin = sdf.format(cal.getTime());
  319. // System.out.println(imptimeBegin);
  320. return imptimeBegin;
  321. }
  322.  
  323. /**
  324. * 返回下一个月的第一天
  325. * @param date20120304
  326. * @return 20120401
  327. */
  328. public static String nextMonthByDate(String date) {
  329. // TODO Auto-generated method stub
  330. int year = Integer.parseInt(date.substring(0,4));
  331. int month = Integer.parseInt(date.substring(4,6));
  332. int day = Integer.parseInt(date.substring(6));
  333. Calendar calendar = Calendar.getInstance();
  334. calendar.set(year, month, 1);
  335. Date newdate = calendar.getTime();
  336. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  337. Calendar cal = Calendar.getInstance();
  338. cal.setTime(newdate);
  339. String imptimeBegin = sdf.format(cal.getTime());
  340. // System.out.println(imptimeBegin);
  341. return imptimeBegin;
  342. }
  343. /**
  344. * 返回当前月的第一天
  345. * @param date20120103
  346. * @return 20120101
  347. */
  348. public static String getCurrentMonthFirstDayByDate(String date) {
  349. int year = Integer.parseInt(date.substring(0,4));
  350. int month = Integer.parseInt(date.substring(4,6));
  351. int day = Integer.parseInt(date.substring(6));
  352. Calendar calendar = Calendar.getInstance();
  353. calendar.set(year, month-1, 1);
  354. Date newdate = calendar.getTime();
  355. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
  356. Calendar cal = Calendar.getInstance();
  357. cal.setTime(newdate);
  358. String imptimeBegin = sdf.format(cal.getTime());
  359. return imptimeBegin;
  360. }
  361.  
  362. }

Android工具类 DateUtil,可以用它方便的进行日期的操作的更多相关文章

  1. android 工具类 DateUtil

    提取了一些在开发过程中可能会用到的日期相关的函数作为工具类.供大家參考: /** * 日期操作工具类. * * @author shimiso */ public class DateUtil { p ...

  2. JAVA 日期格式工具类DateUtil.java

    DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...

  3. [Android Pro] 常用的android工具类和库

    reference to  : http://blog.csdn.net/lovexieyuan520/article/details/50614086 这篇博客主要记录我认为比较有用的Android ...

  4. 日期工具类 - DateUtil.java

    日期工具类,提供对日期的格式化和转换方法.获取区间日期.指定日期.每月最后一天等. 源码如下:(点击下载 -DateUtil.java.commons-lang-2.6.jar ) import ja ...

  5. 摘录android工具类

    import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...

  6. android 工具类 数据库管理

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xuduzhoud/article/details/27540301 数据库工具类,优雅的管理andr ...

  7. java日期工具类DateUtil

    一名优秀的程序员,不仅需要有着丰富解决问题的方案,还需要的便是代码的沉淀,这不仅有助于自己快速的开发程序,也有利于保证程序的健壮.那如何才能沉淀自己的”代码“呢?从自己编写util开始其实就是一个不错 ...

  8. Android工具类整合

    Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...

  9. Android 工具类大全

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311 1.日志工具类L.java package com.zhy.uti ...

随机推荐

  1. Intellij Idea启用Git可视化界面

    第一步. 第二步. 然后点击OK 验证 

  2. maven windows 环境变量

    MAVEN_HOME,内容是解压的maven文件路径 Path中添加 %MAVEN_HOME%\bin 为了测试安装成功,打开命令提示符,输入 mvn -version

  3. Webpack vs Gulp

    Webpack vs Gulp 谁会被拍死在沙滩上   本文组织结构 理想的前端开发流程 Gulp 为何物 Webpack 又是从哪冒出来的 结论 文章有点长,总共 1800 字,阅读需要 18 分钟 ...

  4. echarts地图定时切换散点及多图表级联联动

    本文目录 1. 摘要 2.引入ECharts以及地图相关json 3. 界面布局 4. js实现图形布局 5.定时循环jquery实现 6. 总结 1.  摘要 最近做项目遇到个统计相关需求,一个页面 ...

  5. 分类器评估方法:ROC曲线

    注:本文是人工智能研究网的学习笔记 ROC是什么 二元分类器(binary classifier)的分类结果 ROC空间 最好的预测模型在左上角,代表100%的灵敏度和0%的虚警率,被称为完美分类器. ...

  6. python语法(四)— 文件操作

    前面几天学习了一写python的基础语法,也学习了分支if,循环while和for.由于之前已经做过几年的开发了,所以我们知道,许多数据来源并不是靠键盘输入到程序中去的,而是通过数据库和文件来获取到的 ...

  7. windows系统,联系人文件。个性化。

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha ======= 文件下载链接:

  8. Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍

    前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...

  9. CentOS 7下安装nexus 3

    安装nexus 3的几个注意事项: 1.nexus 3和nexus 2不一样,nexus 2可以搜索Maven主仓库的包,但在nexus 3不能,只能搜索缓存过的包. 2.安装时关心的点在于运行环境, ...

  10. word如何插入和删除脚注,尾注

    在我们日常使用word时,经常会使用到脚注/尾注来对文中某些文字或内容进行注释或是重点说明,效果挺好,挺直观和明显.但是很多人并不会使用,特别是当需要删除脚注事,就特别苦恼了,那根小横线怎么也删除不掉 ...