时间获取及转换
来源:互联网 发布:iphone mac 蓝牙 编辑:程序博客网 时间:2024/05/29 07:41
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类
*/
public class DateUtil {
/** * 日期格式常量类:yyyy-MM-dd */private static final String YYYY_MM_DD = "yyyy-MM-dd";/** * 日期格式常量类:yyyy-MM-dd HH:mm:ss */public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";private final SimpleDateFormat format;public DateUtil(SimpleDateFormat format) { this.format = format;}public SimpleDateFormat getFormat() { return format;}//紧凑型日期格式,也就是纯数字类型yyyyMMddpublic static final DateUtil COMPAT = new DateUtil(new SimpleDateFormat("yyyyMMdd"));//常用日期格式,yyyy-MM-ddpublic static final DateUtil COMMON = new DateUtil(new SimpleDateFormat("yyyy-MM-dd"));public static final DateUtil COMMON_FULL = new DateUtil(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));//使用斜线分隔的,西方多采用,yyyy/MM/ddpublic static final DateUtil SLASH = new DateUtil(new SimpleDateFormat("yyyy/MM/dd"));//中文日期格式常用,yyyy年MM月dd日public static final DateUtil CHINESE = new DateUtil(new SimpleDateFormat("yyyy年MM月dd日"));public static final DateUtil CHINESE_FULL = new DateUtil(new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"));/** * 日期获取字符串 */public String getDateText(Date date) { return getFormat().format(date);}/** * 字符串获取日期 * * @throws ParseException */public Date getTextDate(String text) throws ParseException { return getFormat().parse(text);}/** * 日期获取字符串 */public static String getDateText(Date date, String format) { return new SimpleDateFormat(format).format(date);}/** * 字符串获取日期 * * @throws ParseException */public static Date getTextDate(String dateText, String format) throws ParseException { return new SimpleDateFormat(format).parse(dateText);}/** * 根据日期,返回其星期数,周一为1,周日为7 * * @param date * @return */public static int getWeekDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int w = calendar.get(Calendar.DAY_OF_WEEK); int ret; if (w == Calendar.SUNDAY) ret = 7; else ret = w - 1; return ret;}/** * 获取当天开始 LONG * @return */public static Long getStartTime(){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date date=calendar.getTime(); return date.getTime();}/** * 获取当天结束 LONG * @return */public static Long getEndTime(){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); Date date=calendar.getTime(); return date.getTime();}/** * 字串转化成日期 * * @param date 传入日期 * @param pattern 转换格式 * @return 转化结果 */public static Date strToDate(String date, String pattern) { if (date == null || pattern == null){ return null; } SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { return sdf.parse(date); } catch (ParseException e) { throw new RuntimeException(e); }}/** * 日期转化为字串 * * @param date 传入日期 * @param pattern 格式 * @return 转化结果 */public static String dateToStr(Date date, String pattern) { if (date == null || pattern == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(date);}/** * 日期时间转化为字串yyyy-MM-dd HH:mm:SS * * @param date 传入日期 * @return 转化结果 */public static String dateTimeToStr(Date date) { return dateToStr(date, YYYY_MM_DD_HH_MM_SS);}/** * 把日期转化成"yyyy-MM-dd"格式的字串 * * @param date 传入日期 * @return 转化结果 */public static String dateToStr(Date date) { return dateToStr(date, YYYY_MM_DD);}/** * 把日期加天数 * * @param date 需要处理日期 * @param day 增加天数 * @return Date */public static Date addDay(Date date, int day) { if (date == null) { return null; } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, day); return calendar.getTime();}/** * 把日期转成日期想要的格式 * * @param date 传入日期 * @param pattern 日期格式 * @return 转化结果 */public static Date dateToDatePattern(Date date, String pattern) { String dateStr = dateToStr(date, pattern); return strToDate(dateStr, pattern);}/** * 返回两个日期之间的天数差 * * @param d1 第一个日期 * @param d2 第二个日期 * @return 两个日期之间相差天数 */public static int dateDiff(Date d1, Date d2) { if (d1 == null || d2 == null) { throw new RuntimeException("dateDiff方法两个参数不能为null!"); } d1 = setTime(d1, 0, 0, 0); d2 = setTime(d2, 0, 0, 0); Long diff = (d1.getTime() - d2.getTime()) / 1000 / 60 / 60 / 24; return diff.intValue();}/** * 设置日期格式的时间部分包含:时、分、秒;如果某部分为负数,不修改此部分 * * @param date 日期 * @param hour 时 * @param minute 分 * @param second 秒 * @return 设置结果 */public static Date setTime(Date date, int hour, int minute, int second) { Calendar cal = Calendar.getInstance(); cal.setTime(date); if (hour >= 0) { cal.set(Calendar.HOUR_OF_DAY, hour); } if (minute >= 0) { cal.set(Calendar.MINUTE, minute); } if (second >= 0) { cal.set(Calendar.SECOND, second); } return cal.getTime();}/** * 把毫秒转化成日期 * * @param dateFormat 要转换的日期 * @param millSec 毫秒数 * @return 转换后的日期 */public static String transferLongToDate(String dateFormat, Long millSec) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); Date date = new Date(millSec); return sdf.format(date);}/** * 把日期加天数,返回结果 * * @param date 日期 * @param day 增加天数 * @return 新日期 */public static Long addDay(Long date, int day) { if (date == null) { return null; } Date realDate = addDay(toRealDate(date), day); return toLongDate(realDate);}/** * 把长整形日期转换成真实日期 20150102030405 2015年1月2日3时4分5秒 * * @param date 数字型日期 * @return 日期类型 */public static Date toRealDate(Long date) { if (date == null){ return null; } Calendar calendar = Calendar.getInstance(); int year = (int) (date / 10000000000l); calendar.set(Calendar.YEAR, year); int month = (int) ((date % 10000000000l) / 100000000); calendar.set(Calendar.MONTH, month - 1); int day = (int) ((date % 100000000) / 1000000); calendar.set(Calendar.DAY_OF_MONTH, day); int hour = (int) ((date % 1000000) / 10000); calendar.set(Calendar.HOUR_OF_DAY, hour); int minute = (int) ((date % 10000) / 100); calendar.set(Calendar.MINUTE, minute); int second = (int) (date % 100); calendar.set(Calendar.SECOND, second); return calendar.getTime();}/** * Date类型转换成Long型日期 * * @param date 日期 * @return 转换后的格式 */public static Long toLongDate(Date date) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); return Long.valueOf(sdf.format(date));}/** * 判断时间是否在当天 * @param date * @return */public static boolean isToday(Date date){ SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd"); if(fmt.format(date).toString().equals(fmt.format(new Date()).toString())){//格式化为相同格式 return true; }else { return false; }}
}
阅读全文
1 0
- 时间获取及转换
- 时间获取及转换
- Mysql时间获取及转换
- WindowsAPI的时间结构体、时间转换及时间获取
- Python时间获取及转换知识汇总
- Python时间获取及转换知识汇总
- Python时间获取及转换知识汇总
- python import、datetime获取时间及转换
- 获取系统时间函数及时间格式的转换
- 获取当前日期时间、日期时间格式化及转换
- Android 获取系统时间及时间戳转换
- swift 时间时间戳获取及相互转换
- android开发获取系统时间及时间转换工具
- 时间获取函数及简单的格式转换
- Java中获取当前时间及与字符串转换
- js获取年月日及时间戳与日期转换
- Windows API的时间结构体、时间转换及时间获取
- Windows API的时间结构体、时间转换及时间获取
- 关于java.lang.NoSuchMethodError: javax.persistence.JoinTable.indexes()[Ljavax/persistence/Index异常
- 【HPU 1415: 小ho的01串】& 尺取
- 浅谈代码的执行效率(2):编译器的威力
- mysql服务启动失败 Starting MySQL. ERROR! The server quit without updating PID file
- 权限
- 时间获取及转换
- 类加载器ClassLoader
- python定制类
- VS 中 win32项目 和 Win32控制台应用程序 切换
- Django学习(二)——实现个人博客网站
- 用composer搭建php框架(二)--搭建路由
- 基于一张图的城市智慧管网解决方案
- Eclipse真正常用的快捷键——从实用出发
- java代理模式学习从入门到放弃