0

我在字符串中得到一个日期格式作为输出,就像这样。

2012 年 5 月 18 日星期五 00:00:00 EDT

我需要将其转换为日期对象。我应该使用什么方法?

谢谢你。

这是我使用的程序。

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); 
        }
    }
}
4

3 回答 3

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");

更新:注意自我,语言环境可能很重要。

于 2012-05-28T15:51:42.227 回答
0

SimpleDateFormat与以下模式一起使用:

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

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

于 2012-05-28T15:53:11.743 回答
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();
}
于 2012-05-28T16:04:12.080 回答