Convertirea datei formatării șirului pentru obiectul datei

Obținerea unui format de dată în String ca ieșire ca asta.

Fri 18 mai 00:00:00 EDT 2012

Trebuie să convertesc acest lucru la un obiect de date. Ce abordare trebuie să folosesc?

Mulțumesc.

Acesta este programul pe care l-am folosit.

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

3 răspunsuri

Utilizați SimpleDateFormat cu următorul model:

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

Acest lucru nu vă îngrijorează de Fus orar, Alternativ, cu includerea fusului orar: EEE MMM dd HH: mm: ss z YYYY (este un cod z ). Luați în minte, încă nu am testat-o ​​(întrucât mă întorc acasă de la serviciu).

0
adăugat
@aix, da, asta pentru că am încercat să dau seama între z și Z .
adăugat autor Buhake Sindi, sursa
@ user1422029, secțiunea de comentarii este nu locul pentru inserarea codului. Actualizați-vă postarea, dacă doriți.
adăugat autor Buhake Sindi, sursa
@ user1422029, vă rugăm să postați stacktrace dacă doriți să înțelegem greșeala dvs. Ați folosit modelul meu 2 (cel care include fusul orar)?
adăugat autor Buhake Sindi, sursa
[cod] import java.util. *; import java.text. *; clasa publică DateToString {public static void principal (String [] args) {try {Formatul de DateFormat; Data de data; formatter = nou SimpleDateFormat ("EEE MMM dd HH: mm: ss 'EDT' yyyy"); date = (Data) formatter.parse ("Vineri 18 mai 00:00:00 EDT 2012"); Stringul s = formatter.format (data); System.out.println ("Astăzi este" + s); } captură (ParseException e) {System.out.println ("Excepție:" + e); }}}
adăugat autor Azar, sursa
---------- java ---------- Excepție: java.text.ParseException: Data neîntreruptibilă: "Fri 18 Mai 00:00:00 EDT 2012"
adăugat autor Azar, sursa
au actualizat verificarea codului plzz
adăugat autor Azar, sursa
care nu este un sef de lucru. plzz ajută-mă.
adăugat autor Azar, sursa
Acest lucru ar parola EDT literal, și nu ca specificator de fus orar, nu-i așa?
adăugat autor NPE, sursa
@ user1422029 Vă rugăm să vă actualizați întrebarea cu codul dvs. și să ne spuneți exact ce nu funcționează. Arătați stacktrace excepție, dacă este cazul.
adăugat autor maksimov, sursa
Ce nu funcționează?
adăugat autor maksimov, sursa

Utilizați SimpleDateFormat și implementări pentru a obține o dată afișabilă într-un format pe care îl doriți.

Example:

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
adăugat
Mulțumesc Acest lucru este de lucru perfect
adăugat autor Azar, sursa
Ei bine, aici vă formalizați Data. Am "d" ca șir nu ca obiect date
adăugat autor Azar, sursa
@ user1422029 actualizat. verifică.
adăugat autor Ravinder Reddy, sursa
@ user1422029 System.out.println ("Multumesc Acesta este Perfect de lucru" .equals ("answerAccepted"));//false
adăugat autor Ravinder Reddy, sursa

Have a look at: 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");

Update: note to self, locale can be important.

0
adăugat
chiar dacă eu specific locale locale nu funcționează, plzz vedea codul meu.
adăugat autor Azar, sursa
import java.util. *; import java.text. *; clasa publică DateToString {public static void principal (String [] args) {try {Formatul de DateFormat; Data de data; formatter = nou SimpleDateFormat ("EEE MMM dd HH: mm: ss 'EDT' yyyy"); date = (Data) formatter.parse ("Vineri 18 mai 00:00:00 EDT 2012"); Stringul s = formatter.format (data); System.out.println ("Astăzi este" + s); } captură (ParseException e) {System.out.println ("Excepție:" + e); }}}
adăugat autor Azar, sursa
Acest lucru nu este de lucru șef Folosind codul am folosit
adăugat autor Azar, sursa
Trebuie să specificăm localizarea, am actualizat răspunsul cu acesta mai devreme.
adăugat autor Mattias Isegran Bergander, sursa
Nu pot garanta pentru codul dvs., deoarece nu face același lucru ca l-am enumerat aici, aveți un alt șir de formate în codul pe care l-ați lipit aici @Azar ... Se pare că l-ați amestecat cu codul someones elses și acum a acceptat un răspuns care a fost făcut o oră mai târziu cu codul exact :)
adăugat autor Mattias Isegran Bergander, sursa
Specificați zona de fus orar GMT?
adăugat autor JMelnik, sursa