前言:将时间字符串转换为日期格式,将时间戳转换为日期的方法,简单封装,直接使用。
一. 将时间字符串转化为日期格式。
例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