Java String to Date, ParseException

后端 未结 3 1946
清歌不尽
清歌不尽 2021-01-29 05:21

I have a string named DateCompareOld, it has the value \"Fri Aug 12 16:08:41 EDT 2011\". I want to convert this to a date object.

 SimpleDateFormat          


        
相关标签:
3条回答
  • 2021-01-29 05:40

    Try this format:

    EEE MMM dd HH:mm:ss zzz yyyy
    

    Quick test:

    public static void main(String[] args) throws Exception {
        DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
        System.out.println(df.parse("Fri Aug 12 16:08:41 EDT 2011"));
    }
    
    // outputs
    Fri Aug 12 15:08:41 CDT 2011
    

    Output is in CDT, since that's where I am, but the value is right.

    0 讨论(0)
  • 2021-01-29 05:42

    Note the String passed to SimpleDateFormat() should be corrected to "EEE MMM dd HH:mm:ss z yyyy"

    Here is the code:

    import java.util.Date;
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    public class DateTest{
    public static void main(String []args){
        String DateCompareOld = "Fri Aug 12 16:08:41 EDT 2011";
        SimpleDateFormat dateType =  new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
        Date convertDate = new Date();
        try{
         convertDate = dateType.parse(DateCompareOld);
        }catch(ParseException pex){
            pex.printStackTrace();
        }
        System.out.println(convertDate.toString());
      }
    
    }
    
    0 讨论(0)
  • 2021-01-29 05:54
    DateFormat dateType =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    dateType.setLenient(false);
    Date convertDate = dateType.parse(DateCompareOld);
    
    0 讨论(0)
提交回复
热议问题