时间格式转换LongToString

import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.joda.time.DateTime;

public class DateUtils {
	/*
	 * 获取当前系统时间 System.currentTimeMillis(); return Long 默认转换格式
	 */
	public final static String DATE_FORMAT_DEFAULT = "yyyy-MM-dd";
	public final static String DATE_FORMAT_TIME = "yyyy-MM-dd HH:mm";

	/* 将Long类型转换为yyyy-MM-dd */
	public static String longToString(long time) {
		return (longToString(time, DATE_FORMAT_DEFAULT));
	}

	/* 将Long类型转换为指定格式时间 默认yyyy-MM-dd */
	public static String longToString(long time, String format) {
		if (StringUtils.isBlank(format)) {
			format = DATE_FORMAT_DEFAULT;
		}
		DateTime dTime = new DateTime(time);
		return (dTime.toString(format));
	}

	/* 获取今天的的开始时间 return Long 2016-02-03 00:00:00 */
	public static long getTodayStartTime() {
		DateTime dt = DateTime.now();
		return (dt.withTimeAtStartOfDay().getMillis());
	}

	/* 当前时间所在日期的开始时间 */
	public static long getDayStartTime(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.withTimeAtStartOfDay().getMillis());
	}

	/* 当前时间所在周一的开始时间 */
	public static long getWeekStartTime(long timestamp) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(getDayStartTime(timestamp));

		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
		if (day_of_week == 0) {
			day_of_week = 7;
		}
		c.add(Calendar.DATE, -day_of_week + 1);
		return (c.getTimeInMillis());
	}

	/* 当前时间所在的第几周 */
	public static int getWeekOfYear(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.getWeekOfWeekyear());
	}

	/* 当前时间所在的年 */
	public static int getYear(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.getYear());
	}

	/* 当前时间所在月 */
	public static String getMonth(Long time) {
		DateTime dTime = new DateTime(time);
		return (String.valueOf(dTime.getMonthOfYear()));
	}

	/* 当前时间所在日 */
	public static String getDay(Long time) {
		DateTime dTime = new DateTime(time);
		return (String.valueOf(dTime.getDayOfMonth()));
	}

	/* 当前时间所在时分 15:47 */
	public static String getTime(Long time) {
		DateTime dTime = new DateTime(time);
		int hour = dTime.getHourOfDay();
		int minute = dTime.getMinuteOfHour();
		return (String.format("%d:%d", hour, minute));
	}

	/* 返回当月1日的Long类型 */
	public static long getCurrentMonthToLong() {
		Calendar cal = Calendar.getInstance();
		Date date = new Date(System.currentTimeMillis());
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 返回给定时间当月1日的Long类型 */
	public static long getMonthBeginToLong(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 参数:2016/02/25 返回:2016/02/01的Long类型 */
	public static long getMonthBeginToLong(String str) {
		Calendar cal = Calendar.getInstance();
		Date date = new Date(parseDateStringToLong(str));
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 日期字符串转为long 日期字符串格式 2015-01-01 2015-1-1 2015/1/1 2015/01/01 20150101 */
	public static long parseDateStringToLong(String dateStr) {
		if (null == dateStr || dateStr.trim().length() < 1) {
			return (0L);
		}
		int year = 0;
		int month = 0;
		int day = 0;
		if (dateStr.contains("-")) {
			String[] a = dateStr.split("-");
			year = NumberUtils.toInt(a[0]);
			month = NumberUtils.toInt(a[1]);
			day = NumberUtils.toInt(a[2]);
		} else if (dateStr.contains("/")) {
			String[] a = dateStr.split("/");
			year = NumberUtils.toInt(a[0]);
			month = NumberUtils.toInt(a[1]);
			day = NumberUtils.toInt(a[2]);
		} else {
			if (dateStr.length() == 8) {
				year = NumberUtils.toInt(dateStr.substring(0, 4));
				month = NumberUtils.toInt(dateStr.substring(4, 6));
				day = NumberUtils.toInt(dateStr.substring(6, 8));
			} else {
				return (Long.MIN_VALUE);
			}
		}
		Calendar cal = Calendar.getInstance();
		cal.set(year, month - 1, day, 0, 0, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return (cal.getTime().getTime());
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值