时间格式转换LongToString

来源:互联网 发布:mysql with as 实现 编辑:程序博客网 时间:2024/06/15 11:55
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());}}