Java时间字符串与日期的转换

时间:2022-10-13 22:06:02

前言:将时间字符串转换为日期格式,将时间戳转换为日期的方法,简单封装,直接使用。

一. 将时间字符串转化为日期格式。

例1:将字符串“20160325160000”转换为为“2016-03-25 16:00:00”的实现方法:

     /**
* 将时间字符串转化为日期格式字符串
* @param timeStr 例如:20160325160000
* @return String 例如:2016-03-25 16:00:00
*/

@SuppressLint("SimpleDateFormat")
public static String timeStrToDateStr(String timeStr){
if (null == timeStr) {
return null;
}
String dateStr = null;
SimpleDateFormat sdf_input = new SimpleDateFormat("yyyyMMddhhmmss");//输入格式
SimpleDateFormat sdf_target =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //转化成为的目标格式
try {
//将20160325160000转化为Fri Mar 25 16:00:00 CST 2016,再转化为2016-03-25 16:00:00
dateStr = sdf_target.format(sdf_input.parse(timeStr));
} catch (Exception e) {
}
return dateStr;
}

以此类推,若你的字符串格式不是“20160325160000”这种,只需将输入时间格式sdf_input的构造参数“yyyyMMddhhmmss”改为你现在的格式即可。

例2:若字符串为“2016-03-25 16-00-00”这种自定义格式,转化为2016-03-25 16:00:00:

SimpleDateFormat sdf_input = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");

修改后输入:2016-03-25 16-00-00

转化后输出:2016-03-25 16:00:00

二.将时间戳转化为日期字符串的方法:

例:将时间戳“1497595115014”转化为“2017-06-16 14:38:35”

若输入的时间为==long格式==的,用如下方法:

    /**
* 将long类型的时间戳转化为日期字符串
* @param timeMillis 如:1497595115014
* @return String 如:2017-06-16 14:38:35
*/

public static String timeMillisLongToDateStr(Long timeMillis){
Date date=new Date(timeMillis);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//目标格式
String dateString = sdf.format(date);
return dateString;
}

若输入的时间为==字符串格式==的,用如下方法:

    /**
* 将字符串类型的时间戳转化为日期字符串
* @param timeMillis 如:1497595115014
* @return String 如:2017-06-16 14:38:35
*/

public static String timeMillisStrToDateStr(String timeMillis){
Date date=new Date(Long.parseLong(timeMillis));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//目标格式
String dateString = sdf.format(date);
return dateString;
}

测试方法:

    /*
* 单元测试
*/

public static void main(String argsp[]){
System.out.println(timeMillisStrToDateStr(String.valueOf(System.currentTimeMillis())));
System.out.println(timeMillisLongToDateStr(System.currentTimeMillis()));
}

输出结果:

2017-06-16 15:03:46

2017-06-16 15:03:46