Android工具类 DateUtil,可以用它方便的进行日期的操作
本文转载自:http://blog.csdn.net/xuduzhoud/article/details/27526177
全部代码如下:
DateUtil.java
- package com.example.tset;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- /**
- * 日期操作工具类.
- *
- * @author shimiso
- * http://blog.csdn.net/xuduzhoud/article/details/27526177
- */
- public class DateUtil {
- private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
- public static Date str2Date(String str) {
- return str2Date(str, null);
- }
- public static Date str2Date(String str, String format) {
- if (str == null || str.length() == 0) {
- return null;
- }
- if (format == null || format.length() == 0) {
- format = FORMAT;
- }
- Date date = null;
- try {
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- date = sdf.parse(str);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return date;
- }
- public static Calendar str2Calendar(String str) {
- return str2Calendar(str, null);
- }
- public static Calendar str2Calendar(String str, String format) {
- Date date = str2Date(str, format);
- if (date == null) {
- return null;
- }
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- return c;
- }
- public static String date2Str(Calendar c) {// yyyy-MM-dd HH:mm:ss
- return date2Str(c, null);
- }
- public static String date2Str(Calendar c, String format) {
- if (c == null) {
- return null;
- }
- return date2Str(c.getTime(), format);
- }
- public static String date2Str(Date d) {// yyyy-MM-dd HH:mm:ss
- return date2Str(d, null);
- }
- public static String date2Str(Date d, String format) {// yyyy-MM-dd HH:mm:ss
- if (d == null) {
- return null;
- }
- if (format == null || format.length() == 0) {
- format = FORMAT;
- }
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- String s = sdf.format(d);
- return s;
- }
- public static String getCurDateStr() {
- Calendar c = Calendar.getInstance();
- c.setTime(new Date());
- return c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-"
- + c.get(Calendar.DAY_OF_MONTH) + "-"
- + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE)
- + ":" + c.get(Calendar.SECOND);
- }
- /**
- * 获得当前日期的字符串格式
- *
- * @param format
- * @return
- */
- public static String getCurDateStr(String format) {
- Calendar c = Calendar.getInstance();
- return date2Str(c, format);
- }
- // 格式到秒
- public static String getMillon(long time) {
- return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(time);
- }
- // 格式到天
- public static String getDay(long time) {
- return new SimpleDateFormat("yyyy-MM-dd").format(time);
- }
- // 格式到毫秒
- public static String getSMillon(long time) {
- return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS").format(time);
- }
- /*
- 输入的是String,格式诸如20120102,实现加一天的功能,返回的格式为String,诸如20120103
- */
- public static String stringDatePlus(String row) throws ParseException{
- String year=row.substring(0, 4);
- String month=row.substring(4,6);
- String day=row.substring(6);
- String date1=year+"-"+month+"-"+day;
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
- Date startDate=sdf.parse(date1);
- Calendar cd = Calendar.getInstance();
- cd.setTime(startDate);
- cd.add(Calendar.DATE, 1);
- String dateStr =sdf.format(cd.getTime());
- String year1=dateStr.substring(0,4);
- String month1=dateStr.substring(5,7);
- String day1=dateStr.substring(8);
- return year1+month1+day1;
- }
- /*
- 输入的是String,格式诸如20120102,实现减一天的功能,返回的格式为String,诸如20120101
- */
- public static String stringDateDecrease(String row) throws ParseException{
- String year=row.substring(0, 4);
- String month=row.substring(4,6);
- String day=row.substring(6);
- String date1=year+"-"+month+"-"+day;
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
- Date startDate=sdf.parse(date1);
- Calendar cd = Calendar.getInstance();
- cd.setTime(startDate);
- cd.add(Calendar.DATE, -1);
- String dateStr =sdf.format(cd.getTime());
- String year1=dateStr.substring(0,4);
- String month1=dateStr.substring(5,7);
- String day1=dateStr.substring(8);
- return year1+month1+day1;
- }
- /*
- 输入的格式为String,诸如20120101,返回的格式为String,诸如2012-01-01
- */
- public static String stringDateChange(String date)
- {
- if(date.length()=="20120101".length()){
- String year=date.substring(0, 4);
- String month=date.substring(4,6);
- String day=date.substring(6);
- return year+"-"+month+"-"+day;
- }else{
- return date;
- }
- }
- /**
- * 日期向后推一天
- * @param date 格式:20120101
- * @return 20120102
- */
- public static String tonextday(String date){
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, day+1);
- Date newdate = calendar.getTime();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
- String da = format.format(newdate);
- return da;
- }
- /**
- * 获取当前日期上一周的开始日期 (周日)
- */
- public static String previousWeekByDate(String date) {
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, day);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- if(1 == dayWeek) {
- cal.add(Calendar.DAY_OF_MONTH, -1);
- }
- cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
- int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
- cal.add(Calendar.WEEK_OF_YEAR, -1);
- String imptimeBegin = sdf.format(cal.getTime());
- // System.out.println("所在周星期日的日期:"+imptimeBegin);
- return imptimeBegin;
- }
- /**
- * 获取当前日期上一周的结束日期 (周六)
- */
- public static String previousWeekEndDayByDate(String date) {
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, day);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- if(1 == dayWeek) {
- cal.add(Calendar.DAY_OF_MONTH, -1);
- }
- cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
- int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
- cal.add(Calendar.WEEK_OF_YEAR, -1);
- String imptimeBegin = sdf.format(cal.getTime());
- // System.out.println("星期六的日期:"+imptimeBegin);
- return imptimeBegin;
- }
- /**
- * 获取当前日期当前一周的开始日期 (周日)
- */
- public static String getCurrentWeekFirstDayByDate(String date) {
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, day);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- if(1 == dayWeek) {
- cal.add(Calendar.DAY_OF_MONTH, -1);
- }
- cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
- int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
- String imptimeBegin = sdf.format(cal.getTime());
- // System.out.println("所在周星期日的日期:"+imptimeBegin);
- return imptimeBegin;
- }
- /**
- * 获取当前日期当前一周的结束日期 (周六)
- */
- public static String getCurrentWeekEndDayByDate(String date) {
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, day);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- if(1 == dayWeek) {
- cal.add(Calendar.DAY_OF_MONTH, -1);
- }
- cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
- int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
- cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
- String imptimeBegin = sdf.format(cal.getTime());
- return imptimeBegin;
- }
- /**
- * 返回上一个月的第一天
- * @param date20120304
- * @return 20120201
- */
- public static String previousMonthByDate(String date) {
- // TODO Auto-generated method stub
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-2, 1);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- String imptimeBegin = sdf.format(cal.getTime());
- // System.out.println(imptimeBegin);
- return imptimeBegin;
- }
- /**
- * 返回下一个月的第一天
- * @param date20120304
- * @return 20120401
- */
- public static String nextMonthByDate(String date) {
- // TODO Auto-generated method stub
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month, 1);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- String imptimeBegin = sdf.format(cal.getTime());
- // System.out.println(imptimeBegin);
- return imptimeBegin;
- }
- /**
- * 返回当前月的第一天
- * @param date20120103
- * @return 20120101
- */
- public static String getCurrentMonthFirstDayByDate(String date) {
- int year = Integer.parseInt(date.substring(0,4));
- int month = Integer.parseInt(date.substring(4,6));
- int day = Integer.parseInt(date.substring(6));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month-1, 1);
- Date newdate = calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
- Calendar cal = Calendar.getInstance();
- cal.setTime(newdate);
- String imptimeBegin = sdf.format(cal.getTime());
- return imptimeBegin;
- }
- }
Android工具类 DateUtil,可以用它方便的进行日期的操作的更多相关文章
- android 工具类 DateUtil
提取了一些在开发过程中可能会用到的日期相关的函数作为工具类.供大家參考: /** * 日期操作工具类. * * @author shimiso */ public class DateUtil { p ...
- JAVA 日期格式工具类DateUtil.java
DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...
- [Android Pro] 常用的android工具类和库
reference to : http://blog.csdn.net/lovexieyuan520/article/details/50614086 这篇博客主要记录我认为比较有用的Android ...
- 日期工具类 - DateUtil.java
日期工具类,提供对日期的格式化和转换方法.获取区间日期.指定日期.每月最后一天等. 源码如下:(点击下载 -DateUtil.java.commons-lang-2.6.jar ) import ja ...
- 摘录android工具类
import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...
- android 工具类 数据库管理
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xuduzhoud/article/details/27540301 数据库工具类,优雅的管理andr ...
- java日期工具类DateUtil
一名优秀的程序员,不仅需要有着丰富解决问题的方案,还需要的便是代码的沉淀,这不仅有助于自己快速的开发程序,也有利于保证程序的健壮.那如何才能沉淀自己的”代码“呢?从自己编写util开始其实就是一个不错 ...
- Android工具类整合
Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...
- Android 工具类大全
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311 1.日志工具类L.java package com.zhy.uti ...
随机推荐
- Intellij Idea启用Git可视化界面
第一步. 第二步. 然后点击OK 验证
- maven windows 环境变量
MAVEN_HOME,内容是解压的maven文件路径 Path中添加 %MAVEN_HOME%\bin 为了测试安装成功,打开命令提示符,输入 mvn -version
- Webpack vs Gulp
Webpack vs Gulp 谁会被拍死在沙滩上 本文组织结构 理想的前端开发流程 Gulp 为何物 Webpack 又是从哪冒出来的 结论 文章有点长,总共 1800 字,阅读需要 18 分钟 ...
- echarts地图定时切换散点及多图表级联联动
本文目录 1. 摘要 2.引入ECharts以及地图相关json 3. 界面布局 4. js实现图形布局 5.定时循环jquery实现 6. 总结 1. 摘要 最近做项目遇到个统计相关需求,一个页面 ...
- 分类器评估方法:ROC曲线
注:本文是人工智能研究网的学习笔记 ROC是什么 二元分类器(binary classifier)的分类结果 ROC空间 最好的预测模型在左上角,代表100%的灵敏度和0%的虚警率,被称为完美分类器. ...
- python语法(四)— 文件操作
前面几天学习了一写python的基础语法,也学习了分支if,循环while和for.由于之前已经做过几年的开发了,所以我们知道,许多数据来源并不是靠键盘输入到程序中去的,而是通过数据库和文件来获取到的 ...
- windows系统,联系人文件。个性化。
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ======= 文件下载链接:
- Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...
- CentOS 7下安装nexus 3
安装nexus 3的几个注意事项: 1.nexus 3和nexus 2不一样,nexus 2可以搜索Maven主仓库的包,但在nexus 3不能,只能搜索缓存过的包. 2.安装时关心的点在于运行环境, ...
- word如何插入和删除脚注,尾注
在我们日常使用word时,经常会使用到脚注/尾注来对文中某些文字或内容进行注释或是重点说明,效果挺好,挺直观和明显.但是很多人并不会使用,特别是当需要删除脚注事,就特别苦恼了,那根小横线怎么也删除不掉 ...