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"的时间格式啊?
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时间转换的主要内容,如果未能解决你的问题,请参考以下文章