android开发时间和日期工具类的代码实现:

 package com.gzcivil.utils;

 import android.annotation.SuppressLint;
import android.util.Log; import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* @see 时间、日期工具类
* @author Chenxy
* @date 2015-12-16 10:40
*/
public class DateUtil { static SimpleDateFormat format; /** 日期格式:yyyy-MM-dd HH:mm:ss **/
public static final String DF_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; /** 日期格式:yyyy-MM-dd HH:mm **/
public static final String DF_YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; /** 日期格式:yyyy-MM-dd **/
public static final String DF_YYYY_MM_DD = "yyyy-MM-dd"; /** 日期格式:HH:mm:ss **/
public static final String DF_HH_MM_SS = "HH:mm:ss"; /** 日期格式:HH:mm **/
public static final String DF_HH_MM = "HH:mm"; private final static long minute = 60 * 1000;// 1分钟
private final static long hour = 60 * minute;// 1小时
private final static long day = 24 * hour;// 1天
private final static long month = 31 * day;// 月
private final static long year = 12 * month;// 年 /** Log输出标识 **/
private static final String TAG = DateUtil.class.getSimpleName(); public DateUtil() { } /**
* 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚
*
* @param date
* @return
*/
public static String formatFriendly(Date date) {
if (date == null) {
return null;
}
long diff = new Date().getTime() - date.getTime();
long r = 0;
if (diff > year) {
r = (diff / year);
return r + "年前";
}
if (diff > month) {
r = (diff / month);
return r + "个月前";
}
if (diff > day) {
r = (diff / day);
return r + "天前";
}
if (diff > hour) {
r = (diff / hour);
return r + "个小时前";
}
if (diff > minute) {
r = (diff / minute);
return r + "分钟前";
}
return "刚刚";
} /**
* 将日期以yyyy-MM-dd HH:mm:ss格式化
*
* @param dateL
* 日期
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String formatDateTime(long dateL) {
SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
Date date = new Date(dateL);
return sdf.format(date);
} /**
* 将日期以yyyy-MM-dd HH:mm:ss格式化
*
* @param dateL
* 日期
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String formatDateTime(long dateL, String formater) {
SimpleDateFormat sdf = new SimpleDateFormat(formater);
return sdf.format(new Date(dateL));
} /**
* 将日期以yyyy-MM-dd HH:mm:ss格式化
*
* @param dateL
* 日期
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String formatDateTime(Date date, String formater) {
SimpleDateFormat sdf = new SimpleDateFormat(formater);
return sdf.format(date);
} /**
* 将日期字符串转成日期
*
* @param strDate
* 字符串日期
* @return java.util.date日期类型
*/
@SuppressLint("SimpleDateFormat")
public static Date parseDate(String strDate) {
DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
Date returnDate = null;
try {
returnDate = dateFormat.parse(strDate);
} catch (ParseException e) {
Log.v(TAG, "parseDate failed !"); }
return returnDate; } /**
* 获取系统当前日期
*
* @return
*/
public static Date gainCurrentDate() {
return new Date();
} /**
* 验证日期是否比当前日期早
*
* @param target1
* 比较时间1
* @param target2
* 比较时间2
* @return true 则代表target1比target2晚或等于target2,否则比target2早
*/
public static boolean compareDate(Date target1, Date target2) {
boolean flag = false;
try {
String target1DateTime = formatDateTime(target1, DF_YYYY_MM_DD_HH_MM_SS);
String target2DateTime = formatDateTime(target2, DF_YYYY_MM_DD_HH_MM_SS);
if (target1DateTime.compareTo(target2DateTime) <= 0) {
flag = true;
}
} catch (Exception e) {
System.out.println("比较失败,原因:" + e.getMessage());
}
return flag;
} /**
* 对日期进行增加操作
*
* @param target
* 需要进行运算的日期
* @param hour
* 小时
* @return
*/
public static Date addDateTime(Date target, double hour) {
if (null == target || hour < 0) {
return target;
} return new Date(target.getTime() + (long) (hour * 60 * 60 * 1000));
} /**
* 对日期进行相减操作
*
* @param target
* 需要进行运算的日期
* @param hour
* 小时
* @return
*/
public static Date subDateTime(Date target, double hour) {
if (null == target || hour < 0) {
return target;
} return new Date(target.getTime() - (long) (hour * 60 * 60 * 1000));
} /** 获取系统时间的方法:月/日 时:分:秒 */
public static String getFormateDate() {
Calendar calendar = Calendar.getInstance();
int month = (calendar.get(Calendar.MONTH) + 1);
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND); String systemTime = (month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day) + " " + (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute) + ":" + (second < 10 ? "0" + second : second);
return systemTime;
} /** 获取系统时间的方法:时:分:秒 */
public static String getHourAndMinute() {
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
return (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute);
} /** 获取系统时间的方法:时 */
public static String getHour() {
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
return ((hour < 10 ? "0" + hour : hour) + "");
} /**
* 将2014-09-10 00:00:00 换2014-09-10
*
* @param strDate
* @return
*/
public static String strFormatStr(String strDate) {
if (strDate.equals("")) {
return "";
}
return dateToStr(strToDate(strDate));
} /**
* 2015-01-07 15:05:34
*
* @param strDate
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date strToDateHHMMSS(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
} /**
* 2015-01-07
*
* @param strDate
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
} /**
* 2015.01.07
*
* @param strDate
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date strToDateDorp(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
} @SuppressLint("SimpleDateFormat")
public static String dateToStr(java.util.Date dateDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(dateDate);
return dateString;
} /** 传入一个String转化为long */
@SuppressLint("SimpleDateFormat")
public static Long stringParserLong(String param) throws ParseException {
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.parse(param).getTime();
} /** 当前时间转换为long */
@SuppressLint("SimpleDateFormat")
public static Long currentDateParserLong() throws ParseException {
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.parse(format.format(Calendar.getInstance().getTime())).getTime();
} /** 当前时间 如: 2013-04-22 10:37:00 */
@SuppressLint("SimpleDateFormat")
public static String getCurrentDate() {
format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return format.format(Calendar.getInstance().getTime());
} /** 当前时间 如: 10:37 */
@SuppressLint("SimpleDateFormat")
public static String getCurrentDateHHMM() {
format = new SimpleDateFormat("HH:mm");
return format.format(Calendar.getInstance().getTime());
} /**
* 当前时间 如: 10:37
*
* @throws ParseException
*/
@SuppressLint("SimpleDateFormat")
public static String getCurrentDateHHMMSS() {
format = new SimpleDateFormat("HH:mm:ss");
return format.format(Calendar.getInstance().getTime());
} /** 当前时间 如: 20130422 */
@SuppressLint("SimpleDateFormat")
public static String getCurrentDateString() {
format = new SimpleDateFormat("yyyyMMddHHmm");
return format.format(Calendar.getInstance().getTime());
} /** 当前时间 如: 2013-04-22 */
@SuppressLint("SimpleDateFormat")
public static String getCurrentTime() {
format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(Calendar.getInstance().getTime());
} @SuppressLint("SimpleDateFormat")
public static String getSWAHDate() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(Calendar.getInstance().getTime());
} @SuppressLint("SimpleDateFormat")
public static Long stringToLongD(String param) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.parse(param.substring(0, param.length() - 4)).getTime();
} @SuppressLint("SimpleDateFormat")
public static Long stringToLong(String param) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
return format.parse(param).getTime();
} /**
* 获取两个日期之间的间隔天数
*
* @return
*/
@SuppressLint("SimpleDateFormat")
public static int getGapCount(Date startDate, Date endDate) {
Calendar fromCalendar = Calendar.getInstance();
fromCalendar.setTime(startDate);
fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
fromCalendar.set(Calendar.MINUTE, 0);
fromCalendar.set(Calendar.SECOND, 0);
fromCalendar.set(Calendar.MILLISECOND, 0); Calendar toCalendar = Calendar.getInstance();
toCalendar.setTime(endDate);
toCalendar.set(Calendar.HOUR_OF_DAY, 0);
toCalendar.set(Calendar.MINUTE, 0);
toCalendar.set(Calendar.SECOND, 0);
toCalendar.set(Calendar.MILLISECOND, 0); return (int) ((toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24));
} /**
* 日期转换成Java字符串
*
* @param date
* @return str
*/
@SuppressLint("SimpleDateFormat")
public static String DateToStr(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = format.format(date);
return str;
} /**
* 字符串转换成日期
*
* @param str
* @return date
*/
@SuppressLint("SimpleDateFormat")
public static Date StrToDate(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
} /**
* 字符串转换成日期
*
* @param str
* @return date
*/
@SuppressLint("SimpleDateFormat")
public static Date StrToDateDrop(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
} /**
*
* @param time
* @return
*/
@SuppressLint("SimpleDateFormat")
public static long getLongTime(String time) {
long ct = 0;
try {
format = new SimpleDateFormat("HH:mm:ss");
ct = format.parse(time).getTime();
} catch (Exception e) {
e.printStackTrace();
}
return ct;
} /**
* 判断两日期是否同一天
*
* @param str1
* @param str2
* @return
*/
@SuppressLint("SimpleDateFormat")
public static boolean isSameDay(String str1, String str2) { Date day1 = null, day2 = null;
day1 = DateUtil.strToDate(str1);
day2 = DateUtil.strToDate(str2); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String ds1 = sdf.format(day1); String ds2 = sdf.format(day2); if (ds1.equals(ds2)) {
return true;
} else {
return false;
} } /**
* 获取两个日期的时间差
*/
@SuppressLint("SimpleDateFormat")
public static int getTimeInterval(String date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int interval = 0;
try {
Date currentTime = new Date();// 获取现在的时间
Date beginTime = dateFormat.parse(date);
interval = (int) ((beginTime.getTime() - currentTime.getTime()) / (1000));// 时间差
// 单位秒
} catch (ParseException e) {
e.printStackTrace();
}
return interval;
} /**
* 获取两个日期的时间差 yyyy.MM.dd HH.mm.ss
*/
@SuppressLint("SimpleDateFormat")
public static int getInterval(String bDate, String eDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
int interval = 0;
try {
Date currentTime = dateFormat.parse(eDate);// 获取现在的时间
Date beginTime = dateFormat.parse(bDate);
interval = (int) ((beginTime.getTime() - currentTime.getTime()));// 时间差
// 单位秒
} catch (ParseException e) {
e.printStackTrace();
}
return interval;
} /**
* 两个时间之差 求出一个long Time
*
* @param dt1
* @param dt2
* @return
*/
@SuppressLint("SimpleDateFormat")
public static long getTime(String date) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long diff = 0;
try {
Date currentTime = new Date();// 获取现在的时间
Date getdate = df.parse(date);
diff = getdate.getTime() - currentTime.getTime(); } catch (Exception e) {
}
return diff;
} /**
* 日期转换成Java字符串
*
* @param date
* @return str
*/
@SuppressLint("SimpleDateFormat")
public static int compare_date(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() >= dt2.getTime()) {
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
} /**
* 传入时间 算出星期几
*
* @param str
* 2014年1月3日
* @param days
* 1:2014年1月4日 类推
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String formatDate(String str, int days) { String dateStr = "";
try {
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
Date date = df.parse(str);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date d = dateFormat.parse(dateFormat.format(date));
c.setTime(d);
c.add(Calendar.DAY_OF_MONTH, days);
switch (c.get(Calendar.DAY_OF_WEEK) - 1) {
case 0:
dateStr = "周日";
break;
case 1:
dateStr = "周一";
break;
case 2:
dateStr = "周二";
break;
case 3:
dateStr = "周三";
break;
case 4:
dateStr = "周四";
break;
case 5:
dateStr = "周五";
break;
case 6:
dateStr = "周六";
break;
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
} return dateStr;
}
}

android开发时间和日期的代码实现工具类(一)的更多相关文章

  1. Android开发之封装log打印日志的工具类,实用logutils详细代码

    public final class LogUtil { /** all Log print on-off */ private final static boolean all = true; /* ...

  2. Android开发学习之路-Palette颜色提取工具类使用

    视频(要FQ):https://www.youtube.com/watch?v=5u0dtzXL3PQ Palette是一个在support-v7包中的一个颜色提取工具类,用法比较简单,而且是谷歌官方 ...

  3. Android开发之使用Handler封装下载图片工具类(源码分享)

    假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...

  4. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...

  5. Android开发人员不得不收集的代码(转)

    App相关→AppUtils.java 安装App installApp 卸载指定包名的App uninstallApp 获取当前App信息 getAppInfo 获取所有已安装App信息 getAl ...

  6. 如何在Android开发中让你的代码更有效率

    最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...

  7. Android 开发笔记___DatePicker__日期选择器

    虽然EditText提供了inputTtype="date",但用户往往不太喜欢自己输入时间. Android为这个提供了DatePicker,但有很多缺点,不是弹窗模式,而是直接 ...

  8. 【转】Android开发中让你省时省力的方法、类、接口

    转载 http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share& ...

  9. Android开发:仿美团下拉列表菜单,帮助类,复用简单

    近期在项目中须要用到下拉菜单.公司比較推崇美团的下拉菜单,于是要实现该功能.想着.这个功能应该是一个常常会用到的.于是何不写一个帮助类,仅仅要往这个类里面传入特定的參数,既能够实现下来菜单,并且还能够 ...

随机推荐

  1. 开始我的.NET的学习旅程

    今天开始了我的.NET学习之旅,终于弄懂了.NET与C#的关系,一开始还以为它们就是一个东西,原来不是那样的,C#只是基于.NET平台环境下运行的一种语言,.NET不止可以运行C#语言,更可以运行其他 ...

  2. 工厂方法配置jdbc连接

    package 配置方式.dbUtils; import java.io.InputStream; import java.sql.Connection; import java.sql.Driver ...

  3. oc内存管理总结(一)

    **内存管理 问题 1.什么是ios内存管理? 就是在对象不再被使用的时候,把它即时的从内存中清除掉 2.为什么要使用内存管理? 1.严格的内存管理,能够是我们的应用程在性能上有很大的提高 2.如果忽 ...

  4. oracle 如何搜索当前用户下所有表里含某个值的字段?(转)

    oracle 如何搜索当前用户下所有表里含某个值的字段? create or replace procedure MY_Pro_SearchKeyWord is  v_sql VARCHAR2(400 ...

  5. 从汇编看c++对静态成员的存取

    c++中静态成员变量不存在于对象之中,而存在于全局数据段,只是其可见性受到限制,仅能被所属类访问,而非静态成员变量存在于对象中,因而,在访问两种不同数据成员时,会有些许差别.对于静态数据成员的访问,是 ...

  6. oracle使用口令文件验证和os验证

    一.Oracle安装之后默认情况下是启用了OS认证的,这里提到的os认证是指服务器端os认证.OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级.如果以安装Oracle时的用户登录OS,那么 ...

  7. jquery easyui form load

    加载数据后如果有其他操作可以这样写: $(function () { //如果加载远程json数据后还需要有其他操作, 可以这样写 $.getJSON('GetHandler.ashx?xmbh=&l ...

  8. http://www.cnblogs.com/stephen-liu74/archive/2012/08/01/2561557.html

    http://www.cnblogs.com/stephen-liu74/archive/2012/08/01/2561557.html

  9. ecshop各个文件夹作用

    Images文件夹: 这个文件夹下有子文件夹,在这些子文件夹下面存放着当前网站商品的原始图片和缩略图.这些子文件夹命名有规律的,它们的文件名是它们目录下商品加入 的年月份.也就是说在同一个月份加入的商 ...

  10. oracle 创建表空间详细介绍

    注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存 ...