JAVA时间转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA时间转换相关的知识,希望对你有一定的参考价值。

String dt="Fri Apr 13 2012 09:20:51 GMT 0800 (China Standard Time)";如何转换成
"YYYY-mm-dd HH:MM:SS"的时间格式啊?

package cn.ysh.studio.baidu.zhidao.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
*
* @author 杨胜寒
*/
public class DateFormat1

public static void main(String[] s) throws ParseException
//原来的格式化后的时间字符串
String dt = "Fri Apr 13 2012 09:20:51 GMT 0800 (China Standard Time)";
//实例化一个简单的时间格式化装置,第一个参数指定了日期格式化的格式,后一个参数指定了时区
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT 0800 (China Standard Time)'", Locale.ENGLISH);
//以指定的格式化装置反向解析日期字符串
Date date = sdf.parse(dt);
//实例化第二个简单的时间格式化装置,用来格式化刚才解析出的日期
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");
//格式化
dt = formatter.format(date);
//打印格式化后的字符串
System.out.println(dt);



重点是你要知道你提供的时间字符串的格式,即如何从Date转换到String的,然后你可以构建一个SimpleDateFormat对象反向解析,即可获得对应的Date对象,再然后,就可以根据自己的需要,再自行格式化了。
参考技术A String dt="Fri Apr 13 2012 09:20:51 GMT +0800 (China Standard Time)";
dt=dt.replaceAll(" GMT.+$", "");
System.out.println(dt);
SimpleDateFormat pSdf=new SimpleDateFormat("EEE MMM DD yyyy HH:mm:ss",Locale.ENGLISH);
SimpleDateFormat fSdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(fSdf.format(pSdf.parse(dt)));本回答被提问者采纳
参考技术B 可以先解析dt字符串的年月日时分秒,和时区,转成Date型再format成"YYYY-mm-dd HH:MM:SS"格式返回字符串 参考技术C SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");
sdf .format(new Date());追问

我要转换的是String dt="Fri Apr 13 2012 09:20:51 GMT 0800 (China Standard Time)";这个字符串,不是在JAVA中new Date()

参考技术D 0800 前面是不是少了一个+或者减号?否则可以的

Java时间和时间戳的相互转换

时间转换为时间戳:

    /* 
     * 将时间转换为时间戳
     */    
    public static String dateToStamp(String s) throws ParseException{
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = simpleDateFormat.parse(s);
        long ts = date.getTime();
        res = String.valueOf(ts);
        return res;
    }

时间戳转换为时间:

    /* 
     * 将时间戳转换为时间
     */
    public static String stampToDate(String s){
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long lt = new Long(s);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }

 

以上是关于JAVA时间转换的主要内容,如果未能解决你的问题,请参考以下文章

JAVA时间转换问题

关于java时间戳转换的疑问,求大神指导

java如何转换时间?

JAVA UTC时间格式转换

java时间日期格式转换问题

Java时间格式转换,如何获得时区?