2012-05-28 52 views
-1

我在字符串中获取日期格式,如下所示。转换日期对象的字符串格式日期

周五5月18日00:00:00 EDT 2012

我需要将其改为Date对象。我应该使用什么方法?

谢谢。

这是我使用的程序。

import java.util.*; 
import java.text.*; 

public class DateToString { 
    public static void main(String[] args) { 
     try { 
      DateFormat formatter ; 
      Date date ; 
      formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'EDT' yyyy "); 
      date = (Date)formatter.parse("Fri May 18 00:00:00 EDT 2012"); 
      String s = formatter.format(date); 
      System.out.println("Today is " + s); 
     } catch (ParseException e) { 
      System.out.println("Exception :"+e); 
     } 
    } 
} 

回答

0

使用SimpleDateFormat和实现获取日期显示在一个你想要的格式。

String myDateString = "Fri May 18 00:00:00 EDT 2012"; 
SimpleDateFormat dateFormat = new SimpleDateFormat(); 
dateFormat.applyPattern("EEE MMM dd HH:mm:ss z yyyy"); 

try { 
    Date d = dateFormat.parse(myDateString); 
    System.out.println(d); // Fri May 18 00:00:00 EDT 2012 

    String datePattern1 = "yyyy-MM-dd"; 
    dateFormat.applyPattern(datePattern1); 
    System.out.println(dateFormat.format(d)); // 2012-05-18 

    String datePattern2 = "yyyy.MM.dd G 'at' HH:mm:ss z"; 
    dateFormat.applyPattern(datePattern2); 
    System.out.println(dateFormat.format(d)); // 2012.05.18 AD at 00:00:00 EDT 

    String datePattern3 = "yyyy.MM.dd G 'at' HH:mm:ss Z"; 
    dateFormat.applyPattern(datePattern3); 
    System.out.println(dateFormat.format(d)); // 2012.05.18 AD at 00:00:00 -400 
} 
catch (Exception e) { // ParseException 
    e.printStackTrace(); 
} 
+0

那么你在这里格式化日期。我有“d”作为字符串,不会更新日期对象 – Azar

+0

@ user1422029。核实。 –

+0

谢谢这是工作完美 – Azar

3

看一看:java.text.SimpleDateFormat Java API

SimpleDateFormat dateParser = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", 
    Locale.US); 
Date date = dateParser.parse("Fri May 18 00:00:00 EDT 2012"); 

更新:提醒自己,语言环境也很重要。

+0

这不是工作的老板Follwoing我用 – Azar

+0

import java.util.*; import java.text.*; public class DateToString { public static void main(String[] args) { try { DateFormat formatter ; Date date ; formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'EDT' yyyy "); date = (Date)formatter.parse("Fri May 18 00:00:00 EDT 2012"); String s = formatter.format(date); System.out.println("Today is " + s); } catch (ParseException e) {System.out.println("Exception :"+e); } } } Azar

+0

必须指定语言环境的代码,我更新了这个早期的答案。 –

0

使用SimpleDateFormat有以下模式:

EEE MMM dd HH:mm:ss 'EDT' YYYY 

这并不担心时区,或者,与时区包括:(未经测试EEE MMM dd HH:mm:ss z YYYY(这是一个小写z)。请记住,我还没有测试过(因为我正在下班回家的路上)。

+0

这会从字面上解析'EDT',而不是作为时区说明符,不是吗? – NPE

+0

[code] import java.util。*; import java.text。*; public class DateToString { public static void main(String [] args){ try { DateFormat formatter; 日期日期; formatter = new SimpleDateFormat(“EEE MMM dd HH:mm:ss'EDT'yyyy”); date =(Date)formatter.parse(“Fri May 18 00:00:00 EDT 2012”); String s = formatter.format(date); System.out.println(“Today is”+ s); (System.out.println(“Exception:”+ e);});}} catch(ParseException e) {System.out.println(“Exception:”+ e); } } } – Azar

+0

@aix,是的,这是因为我试图找出'z'和'Z'之间。 –

相关问题