获取时间/日期工具类:格式化日期,获取当前时间,指定时间,上一月,指定时间的毫秒数

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTimeUtils {
	// 默认显示日期的格式
	public static final String DATE_FORMAT = "yyyy-MM-dd";
	// 默认显示日期时间的格式
	public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
	// 默认显示日期时间的格式
	public static final String DATE_TIME_MILLIS_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
	// 显示年月日时分的格式
	public static final String DATE_TIME_MINUTE_FORMAT = "yyyy-MM-dd HH:mm";

	private final static DateFormat mDateFormat = new SimpleDateFormat(DATE_FORMAT);
	private final static DateFormat mDateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
	private final static DateFormat mDateTimeMillisFormat = new SimpleDateFormat(DATE_TIME_MILLIS_FORMAT);
	private final static DateFormat mDataTimeMinuteFormat = new SimpleDateFormat(DATE_TIME_MINUTE_FORMAT);

	/**
	 * @see 获取当前时间年份
	 */
	public static int GetYear() {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

	/**
	 * @see 获取指定时间年份
	 */
	public static int GetYear(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.YEAR);
	}

	/**
	 * @see 获取上一个月的年份
	 */
	public static int GetYearByLastMonth() {
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.MONTH, -1);
		return calendar.get(Calendar.YEAR);
	}

	/**
	 * @see 获取当前时间月份
	 */
	public static int GetMonth() {
		return Calendar.getInstance().get(Calendar.MONTH) + 1;
	}

	/**
	 * @see 获取上一个月的月份
	 */
	public static int GetLastMonth() {
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.MONTH, -1);
		return calendar.get(Calendar.MONTH) + 1;
	}

	/**
	 * @see 获取指定时间月份
	 */
	public static int GetMonth(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.MONTH) + 1;
	}

	/**
	 * @see 获取当前时间日期
	 */
	public static int GetMonthDay() {
		return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
	}

	/**
	 * @see 获取指定时间日期
	 */
	public static int GetMonthDay(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.DAY_OF_MONTH);
	}

	/**
	 * @see 获取当前时间:Hour
	 */
	public static int GetHour() {
		return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
	}

	/**
	 * @see 获取指定时间:Hour
	 */
	public static int GetHour(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.HOUR_OF_DAY);
	}

	/**
	 * @see 获取当前时间:Minute
	 */
	public static int GetMinute() {
		return Calendar.getInstance().get(Calendar.MINUTE);
	}

	/**
	 * @see 获取指定时间:Minute
	 */
	public static int GetMinute(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.MINUTE);
	}

	/**
	 * @see 获取当前时间:Second
	 */
	public static int GetSecond() {
		return Calendar.getInstance().get(Calendar.SECOND);
	}

	/**
	 * @see 获取指定时间:Second
	 */
	public static int GetSecond(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.SECOND);
	}

	/**
	 * @see 获取当前时间:Week
	 */
	public static int GetWeek() {
		return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
	}

	/**
	 * @see 获取指定时间:Week
	 */
	public static int GetWeek(long time) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(time);
		return calendar.get(Calendar.DAY_OF_WEEK);
	}

	/**
	 * @see 是否为当月的第一天
	 */
	public static boolean IsFristDayInMonth() {
		return 1 == GetMonthDay();
	}

	/**
	 * @see 是否为当月的第一天
	 */
	public static boolean IsFristDayInMonth(long time) {
		return 1 == GetMonthDay(time);
	}

	/**
	 * @see 是否为当年的第一月
	 */
	public static boolean IsFristMonthInYear() {
		return 1 == GetMonth();
	}

	/**
	 * @see 是否为当年的第一月
	 */
	public static boolean IsFristMonthInYear(long time) {
		return 1 == GetMonth(time);
	}

	/**
	 * @see 当前时间 => 日期字符串 : 年-月-日
	 */
	public static String GetDateString() {
		return mDateFormat.format(new Date());
	}

	/**
	 * @see 指定时间 => 日期字符串 : 年-月-日
	 */
	public static String ConvertToDateString(long time) {
		return mDateFormat.format(new Date(time));
	}

	/**
	 * @see 日期字符串 => 指定时间
	 */
	public static Date ConvertToDate(String date) throws Exception {
		return mDateFormat.parse(date);
	}

	/**
	 * @see 当前时间 => 时间字符串 : 年-月-日 时:分:秒
	 */
	public static String GetDateTimeString() {
		return mDateTimeFormat.format(new Date());
	}

	/**
	 * @see 指定时间 => 时间字符串 : 年-月-日 时:分:秒
	 */
	public static String ConvertToDateTimeString(long time) {
		return mDateTimeFormat.format(new Date(time));
	}

	/**
	 * @see 时间字符串 => 指定时间 年:月:日
	 */
	public static Date ConvertToDateTime(String date) throws Exception {
		return mDateTimeFormat.parse(date);
	}

	/**
	 * @see 时间字符串 => 指定时间 年:月:日 时:分:秒
	 */
	public static long ConvertToLongTimeWithDateTime(String dateTime) {
		try {
			return ConvertToDateTime(dateTime).getTime();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	/**
	 * @see 时间字符串 => 指定时间
	 */
	public static long ConvertToLongTimeWithDate(String date) {
		try {
			return ConvertToDate(date).getTime();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	/**
	 * @see 获取时间字符串:年-月-日 时:分:秒.毫秒
	 */
	public static String GetDateTimeMillisString() {
		return mDateTimeMillisFormat.format(new Date());
	}

	/**
	 * @see 获取时间字符串:年-月-日 时:分
	 */
	public static String GetDateTimeMinuteString() {
		return mDataTimeMinuteFormat.format(new Date());
	}

	/**
	 * @return 昨日指定时间的毫秒数(24小时制)
	 */
	public static long GetYesterdaywAppointedTime(int hour, int minute, int second) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, hour);
		calendar.set(Calendar.MINUTE, minute);
		calendar.set(Calendar.SECOND, second);
		calendar.set(Calendar.MILLISECOND, 0);
		calendar.add(Calendar.DAY_OF_MONTH, -1);
		return calendar.getTimeInMillis();
	}

	/**
	 * @return 今日指定时间的毫秒数(24小时制)
	 */
	public static long GetTodayAppointedTime(int hour, int minute, int second) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, hour);
		calendar.set(Calendar.MINUTE, minute);
		calendar.set(Calendar.SECOND, second);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTimeInMillis();
	}

	/**
	 * @return 明日指定时间的毫秒数(24小时制)
	 */
	public static long GetTomorrowAppointedTime(int hour, int minute, int second) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, hour);
		calendar.set(Calendar.MINUTE, minute);
		calendar.set(Calendar.SECOND, second);
		calendar.set(Calendar.MILLISECOND, 0);
		calendar.add(Calendar.DAY_OF_MONTH, +1);
		return calendar.getTimeInMillis();
	}

	/**
	 * @return 获取周日24点的时间
	 */
	public static long GetSundayZeroTime() {
		Calendar calendar = Calendar.getInstance();
		if (calendar.get(Calendar.DAY_OF_WEEK) > Calendar.SUNDAY) {
			calendar.add(Calendar.WEEK_OF_MONTH, 1);
		}
		calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTimeInMillis();
	}

	/**
	 * @see 获取当前日期与指定日期相差的天数
	 */
	public static int CompareByDay(String date) {
		try {
			return (int) (((new Date()).getTime() - ConvertToDate(date).getTime()) / (24 * 60 * 60 * 1000));
		} catch (Exception e) {
			e.printStackTrace();
			return -1;
		}
	}

	/**
	 * @see 是否为同一月
	 */
	public static boolean IsCurrentMonth(long time) {
		return GetYear() == GetYear(time) && GetMonth() == GetMonth(time);
	}

	/**
	 * @see 是否为同一天
	 */
	public static boolean IsCurrentDay(long time) {
		return IsCurrentMonth(time) && GetMonthDay() == GetMonthDay(time);
	}

	/**
	 * @see 根据上月总天数
	 */
	public static int GetLastMonthDays() {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.DAY_OF_MONTH, 1);
		cal.add(Calendar.DAY_OF_MONTH, -1);
		return cal.get(Calendar.DAY_OF_MONTH);
	}

	/**
	 * @see 获取当月总天数
	 */
	public static int GetCurrentMonthDays() {
		Calendar a = Calendar.getInstance();
		a.set(Calendar.DATE, 1);
		a.roll(Calendar.DATE, -1);
		return a.get(Calendar.DATE);
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值