Java字符串与时间戳的相关转换
2018-02-27 16:53
507 查看
本文以yyyyMMddHHmmss格式的字符串作为转换示例,如果有其他格式,请自行转换。
原来的程序中时间以字符串格式存储,格式为:yyyyMMddHHmmss。
数据库中的时间存储格式如下:
实例:‘20180208120005’
将 yyyymmddhhMMss类型的字符串 转换成 时间戳(毫秒)
计算两个 yyyymmddhhMMss类型的字符串 的 时间差(毫秒)
将 时间戳(毫秒) 转换成 yyyymmddhhMMss类型的字符串
计算 yyyymmddhhMMss类型的字符串 的 millis毫秒 以后的 字符串
测试结果:
1.背景说明
今天维护一个功能,需要时间转换与计算。原来的程序中时间以字符串格式存储,格式为:yyyyMMddHHmmss。
数据库中的时间存储格式如下:
fssj VARCHAR2(14) not null
实例:‘20180208120005’
2.功能需求
为了方便时间转换与计算,需要实现如下方法:将 yyyymmddhhMMss类型的字符串 转换成 时间戳(毫秒)
计算两个 yyyymmddhhMMss类型的字符串 的 时间差(毫秒)
将 时间戳(毫秒) 转换成 yyyymmddhhMMss类型的字符串
计算 yyyymmddhhMMss类型的字符串 的 millis毫秒 以后的 字符串
3.实现原理
主要通过SimpleDateFormat类进行转换://yyyymmddhhMMss-->timeMillis SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Long time = sdf.parse(time14).getTime(); //timeMillis-->yyyymmddhhMMss SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String time14 = sdf.format(new Date(millis));
4.全部代码
全部代码如下:/** * 时间转换工具类(类名自己改) * @author hanchao * */ public class QxtMessageUtils{ private static Logger LOGGER = Logger.getLogger(QxtMessageUtils.class); /** * 将yyyymmddhhMMss转换成时间戳(毫秒) * @return * @throws ParseException */ public static Long time14ToTimeMillis(String time14) throws ParseException{ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = sdf.parse(time14); LOGGER.debug(time14 + "-->" + date.getTime()); return date.getTime(); } /** * 计算两个yyyymmddhhMMss的时间差(毫秒) * @param time14Start * @param time14End * @return * @throws ParseException */ public static Long timeMillisBetween(String time14Start,String time14End) throws ParseException{ return time14ToTimeMillis(time14Start) - time14ToTimeMillis(time14End); } /** * 将时间戳(毫秒)转换成yyyymmddhhMMss * @param millis * @return */ public static String timeMillisToTime14(Long millis){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String time14 = sdf.format(new Date(millis)); LOGGER.debug(millis + "-->" +time14); return time14; } /** * yyyymmddhhMMss的时间增加millis毫秒 * @param time14Start * @param millis * @return * @throws ParseException */ public static String time14AddTimeMillis(String time14Start,Long millis) throws ParseException{ Long startMillis = time14ToTimeMillis(time14Start); Long endMills = startMillis + millis; String endTime14 = timeMillisToTime14(endMills); LOGGER.info(time14Start + " + " + millis + " --> " + endTime14); return endTime14; } //测试 public static void main(String[] args) throws Exception{ LOGGER.info(QxtMessageUtils.time14ToTimeMillis("20180208120005")); LOGGER.info(QxtMessageUtils.timeMillisToTime14(1519718616000L)); LOGGER.info(QxtMessageUtils.timeMillisBetween("20180208120005", "20180208120100")); LOGGER.info(QxtMessageUtils.time14AddTimeMillis("20180208120005", (long) (60 * 1000))); } }
测试结果:
2018-02-27 16:47:59 INFO QxtMessageUtils:204 - 1518062405000 2018-02-27 16:47:59 INFO QxtMessageUtils:205 - 20180227160336 2018-02-27 16:47:59 INFO QxtMessageUtils:206 - -55000 2018-02-27 16:47:59 INFO QxtMessageUtils:207 - 20180208120105
相关文章推荐
- 时间戳与字符串相互转换(JAVA)
- Java将Unix时间戳转换成指定格式日期字符串工具类
- Java - - 字符串转换为日期和时间大小比较
- Java字符串转换为日期和时间比较大小
- java中把时间戳转换成时间字符串
- C/C++时间相关操作 SYSTEMTIME time_t 字符串的相互转换
- Java字符串转换为日期和时间比较大小
- JAVA字符串转时间及编码格式转换等
- java 时间与字符串之间的转换
- java学习之旅66--常用类_DateFormat和SimpleDateFormat_时间和字符串的互相转换
- java 时间字符串 转换 毫秒
- java 获得系统时间 转换成字符串
- java中字符串转换成时间格式总结
- java时间与字符串转换
- Java日期转换SimpleDateFormat格式大全 和 判断是否为合法的日期时间字符串?
- Java字符串转换为日期和时间比较大小
- Java中字符串转换为时间戳
- Java日期处理——字符串转换为日期时间
- java中字符串转换成时间格式总结
- java时间戳与日期字符串相互转换方法