【Java|Android】时间日期工具

来源:互联网 发布:优酷下载器 mac 编辑:程序博客网 时间:2024/06/03 13:17

摘自:https://github.com/cundong/ZhihuPaper


import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import android.text.TextUtils;/** * 类说明: 日期时间工具类 *  * @author Cundong * @date Feb 15, 2012 5:30:51 AM * @version 1.0 */public class DateUtils {/** * 默认日期格式 */public static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";/** * 时间格式:yyyy-MM-dd HH:mm:ss */public static final String YYYY_MM_dd_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";/** * 时间格式:yyyy-MM-dd HH:mm */public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";public static final String YYYY_MM_DD_HH = "yyyy-MM-dd HH";/** * 时间格式:yyyy-MM-dd */public static final String YYYY_MM_DD = "yyyy-MM-dd";public static final String YYYYMMDD = "yyyyMMdd";public static final String MMDD = "MM月dd日";/** * 时间格式:HH:mm:ss */public static final String HH_MM_SS = "HH:mm:ss";public static final String HH_MM = "HH:mm";public static final String YYYYmmDDhhMMss = "yyyy/MM/dd HH:mm:ss";/** * 获取当前时间 *  * @return */public static String getCurrentTime() {Date date = Calendar.getInstance().getTime();SimpleDateFormat sf = new SimpleDateFormat(YYYY_MM_dd_HH_MM_SS, Locale.getDefault());return sf.format(date);}/** * 获取今天的日期,格式为:yyyy/MM/dd *  * @return */public static String getCurrentDate(String format) {Date date = Calendar.getInstance().getTime();SimpleDateFormat sf = new SimpleDateFormat(format, Locale.getDefault());return sf.format(date);}/** * 获取昨天的日期,格式为:yyyy/MM/dd *  * @return */public static String getYesterdayDate(String format) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);Date date = cal.getTime();SimpleDateFormat sf = new SimpleDateFormat(format, Locale.getDefault());return sf.format(date);}/** * 获取前天的日期,格式为:yyyy/MM/dd *  * @return */public static String getTheDayBeforeYesterday(String format) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -2);Date date = cal.getTime();SimpleDateFormat sf = new SimpleDateFormat(format, Locale.getDefault());return sf.format(date);}/** * 获取今天的日期,格式为:YYYY_MM_DD *  * @return */public static String getCurrentDate() {return getCurrentDate(YYYY_MM_DD);}public static int getCurrentMonth() {Date date = Calendar.getInstance().getTime();SimpleDateFormat sf = new SimpleDateFormat("MM", Locale.getDefault());return Integer.parseInt(sf.format(date));}/** * @param pubtime *            样例:2011-06-20T17:23:11Z * @return 样例:05.10 17:11 */public static String getFormatTime(String pubtime) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault());Date date = null;try {date = df.parse(pubtime.replace("Z", " "));} catch (ParseException e) {e.printStackTrace();}return (null == date) ? null : (new SimpleDateFormat("MM.dd HH:mm", Locale.getDefault())).format(date);}public static Date getFormatTimeDate(String pubtime, String inputFormat, String outFormat) {if (TextUtils.isEmpty(pubtime)) {return null;}SimpleDateFormat df = new SimpleDateFormat(inputFormat, Locale.getDefault());Date date = null;try {pubtime = pubtime.replace("Z", " ");pubtime = pubtime.replace("T", " ");date = df.parse(pubtime);} catch (ParseException e) {e.printStackTrace();}return date;}public static String getFormatTime(String pubtime, String inputFormat, String outFormat) {Date date = getFormatTimeDate(pubtime, inputFormat, outFormat);return (null == date) ? null : (new SimpleDateFormat(outFormat, Locale.getDefault())).format(date);}/** * @param pubtime *            样例:2011-06-20T17:23:11Z * @param format * @return */public static String getFormatTime(String pubtime, String format) {SimpleDateFormat df = new SimpleDateFormat(format, Locale.getDefault());Date date = null;try {date = df.parse(pubtime.replace("T", " "));} catch (ParseException e) {e.printStackTrace();}return (null == date) ? null : (new SimpleDateFormat(format, Locale.getDefault())).format(date);}/** * 获取当前日期是星期几 *  * @param dt * @return 当前日期是星期几 */public static String getWeekOfDate(Date dt) {String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };Calendar cal = Calendar.getInstance();cal.setTime(dt);int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0)w = 0;return weekDays[w];}/** * 字符串转换时间戳 *  * @param str * @return */public static long getTimestamp(String str, String fromat) {if (TextUtils.isEmpty(str))return 0;Date date = str2Date(str, fromat);return date.getTime();}/** * 获取两个时间戳之间差值,并且返回小时 */public static int subTimeStamp2Hour(Timestamp one, Timestamp two) {int minute = subTimeStamp2Minute(one, two);return minute / 60;}/** * 获取两个时间戳之间差值,并且返回分钟 */public static int subTimeStamp2Minute(Timestamp one, Timestamp two) {return (int) (two.getTime() - one.getTime()) / (1000 * 60);}/** * 获取两个时间戳之间差值,并且返回秒 */public static int subTimeStamp2Second(Timestamp one, Timestamp two) {int minute = subTimeStamp2Minute(one, two);return minute * 60;}/** * Date转Timestamp *  * @param pubtime * @return */public static Timestamp string2Timestamp(String pubtime, String format) {Timestamp timestamp = null;SimpleDateFormat df = new SimpleDateFormat(format, Locale.getDefault());Date date = null;try {date = df.parse(pubtime.replace("Z", " "));} catch (ParseException e) {e.printStackTrace();}if (null != date) {SimpleDateFormat df1 = new SimpleDateFormat(format, Locale.getDefault());String time = df1.format(date);timestamp = Timestamp.valueOf(time);}return timestamp;}/** * 字符串转换成日期 如果转换格式为空,则利用默认格式进行转换操作 *  * @param str *            字符串 * @param format *            日期格式 * @return 日期 * @throws java.text.ParseException */public static Date str2Date(String str, String format) {Date date = null;if (!TextUtils.isEmpty(str)) {// 如果没有指定字符串转换的格式,则用默认格式进行转换if (null == format || "".equals(format)) {format = DEFAULT_FORMAT;}SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());try {date = sdf.parse(str);} catch (ParseException e) {e.printStackTrace();}}return date;}/** * 获取两个日期之间的差值 *  * @param date1 * @param date2 * @return */public static int getDiff(String str1, String str2) {if (TextUtils.isEmpty(str1) || TextUtils.isEmpty(str2))return 0;Date date1 = str2Date(str1, YYYYMMDD);Date date2 = str2Date(str2, YYYYMMDD);return (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24));}}


0 0
原创粉丝点击