2012-05-28 6 views
-1

Je reçois un format de date dans Chaîne en sortie comme ceci.Conversion d'une date de format de chaîne pour l'objet date

Ven 18 mai 2012 00:00:00 HAE

Je dois convertir à un objet Date. Quelle approche dois-je utiliser?

Merci.

C'est le programme que j'ai utilisé.

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

Répondre

0

Utilisez SimpleDateFormat et les implémentations pour obtenir une date affichable dans le format que vous voulez.

Exemple:

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

Eh bien, ici vous format dans la date. J'ai le "d" comme chaîne pas comme objet de date – Azar

+0

@ user1422029 mis à jour. vérifie ça. –

+0

Merci Cela fonctionne parfaitement – Azar

3

Jetez un oeil à: 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"); 

Mise à jour: Note à moi, locale peut être important.

+0

Ce n'est pas le patron de travail follwoing le code i utilisé – 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

devez spécifier locale, je mis à jour la réponse à cette heure. –

0

Utilisez SimpleDateFormat avec le motif suivant:

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

Cela ne vous inquiétez pas Timezone, Sinon, avec l'inclusion de fuseau horaire: (non testé ) EEE MMM dd HH:mm:ss z YYYY (c'est un minuscule z). Gardez à l'esprit, je ne l'ai pas encore testé (car je rentre du travail).

+0

Cela permettrait d'analyser littéralement 'EDT', et non pas comme le spécificateur de fuseau horaire, n'est-ce pas? – NPE

+0

[code] import java.util. *; import java.text. *; public class DateToString { public static void principal (String [] args) { try { DateFormat formatter; Date de la date; formatter = nouveau SimpleDateFormat ("EEE MMM jj HH: mm: ss 'EDT' aaaa"); date = (Date) formatter.parse ("Ven mai 18 00:00:00 EDT 2012"); Chaîne s = formatter.format (date); System.out.println ("Aujourd'hui est" + s); } catch (ParseException e) {System.out.println ("Exception:" + e); } } } – Azar

+0

@aix, oui, c'est parce que j'essayais de comprendre entre 'z' et' Z'. –