android开发时间和日期的代码实现工具类(一)
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开发时间和日期的代码实现工具类(一)的更多相关文章
- Android开发之封装log打印日志的工具类,实用logutils详细代码
public final class LogUtil { /** all Log print on-off */ private final static boolean all = true; /* ...
- Android开发学习之路-Palette颜色提取工具类使用
视频(要FQ):https://www.youtube.com/watch?v=5u0dtzXL3PQ Palette是一个在support-v7包中的一个颜色提取工具类,用法比较简单,而且是谷歌官方 ...
- Android开发之使用Handler封装下载图片工具类(源码分享)
假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...
- iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...
- Android开发人员不得不收集的代码(转)
App相关→AppUtils.java 安装App installApp 卸载指定包名的App uninstallApp 获取当前App信息 getAppInfo 获取所有已安装App信息 getAl ...
- 如何在Android开发中让你的代码更有效率
最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...
- Android 开发笔记___DatePicker__日期选择器
虽然EditText提供了inputTtype="date",但用户往往不太喜欢自己输入时间. Android为这个提供了DatePicker,但有很多缺点,不是弹窗模式,而是直接 ...
- 【转】Android开发中让你省时省力的方法、类、接口
转载 http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share& ...
- Android开发:仿美团下拉列表菜单,帮助类,复用简单
近期在项目中须要用到下拉菜单.公司比較推崇美团的下拉菜单,于是要实现该功能.想着.这个功能应该是一个常常会用到的.于是何不写一个帮助类,仅仅要往这个类里面传入特定的參数,既能够实现下来菜单,并且还能够 ...
随机推荐
- Android 的权限设置大全
android.permission.ACCESS_CHECKIN_PROPERTIES //同意读写訪问"properties"表在checkin数据库中.改值可以改动上传 an ...
- RHEL5.8安装Sybase 15.7_x86_64
RHEL5.8安装Sybase 15.7如果您运行的是 RHEL 5 或更高版本,请使用以下设置:kernel.exec-shield = 0kernel.randomize_va_space = 0 ...
- php.ini中最好禁止的一些函数
phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级 ...
- log4.net 日志工具使用
1. 在应用程序的相同目录下建立: winform : 程序名.exe.config .(log4net程序,就log4net.exe.config) web: ...
- js自定义事件、DOM/伪DOM自定义事件
一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木 ...
- UINavigationController 和 UITabBarController
UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放 UITa ...
- What is SignalR and Why Should I Use It?
原文地址: What is SignalR and why should I use it? When I first heard about SignalR, I was not sure what ...
- POJ 2446 Chessboard
要求用占两格的长方形铺满平面上除去指定点 二分图匹配 #include <iostream> #include <cstdio> #include <cstring> ...
- JSON之三:获取JSON文本并解释(以google的天气API为例)
google提供了天气的api,以广州天气为例,地址为: http://api.openweathermap.org/data/2.5/weather?q=guangzhou 返回的结果为: { ...
- 移动网页版Meta 标签
viewport 大部分移动浏览器都接受,比如 Opera Mobile, iPhone, Android, Iris, IE, BlackBerry, Obigo, Firefox 最基本的例子,在 ...