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());
}
}
时间格式转换LongToString
最新推荐文章于 2024-07-19 11:18:20 发布