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

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

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

例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”改为你现在的格式即可。

注意:在”yyyy-MM-dd HH:mm:ss”中,HH大写为24小时制,hh小写为12小时制

例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

你可能感兴趣的:(Java)