package xxx;
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale;
import com.xxx.utils.obj.ObjectUtils; import com.xxx.utils.string.StringUtils;
/** * 日期函数 * */ public final class DateUtils { // 时间默认mormat格式 public static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String FORMAT_YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
// 日志答应信息
/** * 获得当前时间 * * @return */ public static Date getCurrDate() { return new Date(System.currentTimeMillis()); } //得到当天最后一秒的时间 public static Date getLastSecond(Date date) throws Exception{ DateFormat format=new SimpleDateFormat("yyyy-MM-dd"); String str=format.format(date); Date d2=format.parse(str); long curMillisecond=d2.getTime();//当天的毫秒 int dayMis=1000*60*60*24;//一天的毫秒 long resultMis=curMillisecond+(dayMis-1); //当天最后一秒 //得到我需要的时间 当天最后一秒 Date resultDate=new Date(resultMis); return resultDate; }
/** * 操作日期的字段 * * @param date * 需要改变的日期 * @param field * 需要修改的字段 * @param num * 增加为正数,减少为负数 * @return */ public static Date optDateField(Date date, int field, int num) { if (ObjectUtils.isNull(date)) { date = getCurrDate(); }
Calendar cal = Calendar.getInstance(Locale.getDefault()); cal.setTime(date); cal.set(field, cal.get(field) + num); return cal.getTime();
}
/** * 将字符串解析成日期格式 * * @param str * @param format * @return * @throws ParseException */ public static Date strToDate(String str, String format) { try { if (StringUtils.isEmpty(format)) { format = DEFAULT_FORMAT; } SimpleDateFormat df = new SimpleDateFormat(format); return df.parse(str); } catch (Exception e) { // logger.debug("时间格式转换出错误,时间字符串为:".concat(str).concat("日志格式为:").concat(format), // e); } return null; }
/** * 时间戳转换成日期字符串 * @param second 精确到秒 * @param format 时间格式 * @return */ public static String timeStamp2Date(Long second,String format) { String seconds = String.valueOf(second); if(seconds == null || seconds.isEmpty() || seconds.equals("null")){ return ""; } if(format == null || format.isEmpty()) { format = "yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date(Long.valueOf(seconds+"000"))); } }