本文转载自: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,可以用它方便的进行日期的操作的更多相关文章

  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. SpringMVC介绍及参数绑定

    本节内容: SpringMVC介绍 入门程序 SpringMVC架构 SpringMVC整合MyBatis 参数绑定 SpringMVC和Struts2的区别 一.SpringMVC介绍 1. 什么是 ...

  2. Angular 5项目

    Angular 5项目 如果您正在使用angular, 但是没有好好利用angular cli的话, 那么可以看看本文. Angular CLI 官网: https://github.com/angu ...

  3. 【BZOJ】3456: 城市规划(多项式求ln)

    题解 在我写过分治NTT,多项式求逆之后 我又一次写了多项式求ln 我们定义一个数列的指数型生成函数为 \(\sum_{i = 0}^{n} \frac{A_{i}}{i!} x^{i}\) 然后这个 ...

  4. P1417 烹调方案 背包DP

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  5. 【Java】 大话数据结构(16) 排序算法(3) (堆排序)

    本文根据<大话数据结构>一书,实现了Java版的堆排序. 更多:数据结构与算法合集 基本概念 堆排序种的堆指的是数据结构中的堆,而不是内存模型中的堆. 堆:可以看成一棵完全二叉树,每个结点 ...

  6. MySQL连接表

    一:MySQL别名 1.介绍 使用MySQL别名来提高查询的可读性. MySQL支持两种别名,称为列别名和表别名. 有时,列的名称是一些表达式,使查询的输出很难理解.要给列一个描述性名称,可以使用列别 ...

  7. 026 Spark 的官网(版本为1.6.1的总官网)

    1. 多多读官网,所有的只知识点都可以从上面的总纲中查到.

  8. MyBatis 从浅入深 随笔整理

    MyBatis? archetypeCatalog = internal 本文档单独出现的_parameter都标识为变量名 一.三个基本要素: 核心接口和类 MyBatis 核心配置文件 SQL映射 ...

  9. java string 替换img标签 正则表达式 任意多个字符

    正则表达式 任意多个字符 (.*)  正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符 要匹配包括 '\n' 在内的任何字符,([\s\S]*) 也可以用 “([\d\D]*)” ...

  10. BZOJ.4946.[NOI2017]蔬菜(贪心 离线)

    题目链接 因为有删除,考虑倒序处理某个p的询问. 那么每天删除xi的蔬菜就变成了每天运来xi的蔬菜.那么我们取当前最优的即可,早取晚取都一样,不需要留给后面取,还能给后面更优的留出空间. 这样就只需考 ...