2013-04-25 11 views
16

ich diese erstellen bin mit der aktuellen Zeit zu bekommen:Java Date-Objekt mit einem Wert Zeichenfolge

java.util.Calendar cal = java.util.Calendar.getInstance(); 
    System.out.println(new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss") 
      .format(cal.getTime())); 

Ich mag den Wert setzen (was ich es drucken) in ein Date-Objekt, habe ich versucht, dies:

Date currentDate = new Date(value); 

aber Eclipse sagt mir, dass diese Funktion nicht gut ist.

bearbeiten die value ist der Wert, den ich Ihnen gedruckt System.out.printin mit

+0

Dinatsoil Was ist Wert. Bitte deutlich angeben. –

+2

Was verwenden Sie für "Wert"? – Zyerah

+0

'Wert' ist ein' String'? Sie müssen es auch mit 'SimpleDateFormat' analysieren. – Kai

Antwort

44

Jedes Mal, wenn Sie einen String zu Date-Objekt konvertieren wollen, dann verwenden SimpleDateFormat#parse
Try

String dateInString = new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss") 
     .format(cal.getTime()) 
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss"); 
Date parsedDate = formatter.parse(dateInString); 

.Zusätzliche, was zu verwenden, wenn Sie eine Date zu String konvertieren möchten, dann sollten Sie SimpleDateFormat#format-Funktion verwenden.
Jetzt ist der Punkt für Sie new Date(String) ist veraltet und nicht jetzt empfohlen.Jetzt, wenn jemand analysieren will, dann sollte er/sie SimpleDateFormat#parse verwenden.

+0

Was ist Stringdate? –

+0

Es ist Ihr Datum im Zeichenkettenformat. Sie müssen Format in "neues SimpleDateFormat (Format)" genau wie Ihre Zeichenkette haben und sie dann nur analysieren müssen. Als Ihr 'neues java.text.SimpleDateFormat (" EEEE, dd/MM/JJJJ/HH: MM: SS ") \t .format (cald.getTime())' wird einen String zurückgeben und in Frage, ich denke, Sie wollen es in 'Date' konvertieren, dann ist dies die Art, wie ich geantwortet habe – Freak

+0

Was ist dateInString? Ich habe nichts analysiert, –

27

Verwendung Simple Parse-Methode:

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 

String inputString = "11-11-2012"; 
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
Date inputDate = dateFormat.parse(inputString); 
4

ZUALLERERST KNOW der Grund, warum ECLIPSE SO TUT.

Datum hat nur einen Konstruktor Datum (langes Datum), das nach Datum im langen Datentyp fragt.

Der Konstruktor Sie

Datum verwenden (String s) Veraltete. Ab JDK Version 1.1, ersetzt durch DateFormat.parse (String s).

Das ist warum Eclipse sagt, dass diese Funktion nicht gut ist.

Siehe diese offizielle Dokumentation

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html


Veraltete Methoden aus dem Kontext - Quelle - http://www.coderanch.com/t/378728/java/java/Deprecated-methods

Es gibt eine Reihe von Gründen, warum eine Methode oder Klasse kann veraltet sein.Eine API ist möglicherweise nicht einfach erweiterbar, ohne die Abwärtskompatibilität zu beeinträchtigen, und wird daher durch eine leistungsfähigere API ersetzt (z. B. wurde java.util.Date zugunsten von Calendar oder des Java 1.0-Ereignismodells veraltet). Es kann unter bestimmten Umständen auch nicht funktionieren oder falsche Ergebnisse erzeugen (z. B. funktionieren einige der java.io-Stream-Klassen mit einigen Codierungen nicht richtig). Manchmal ist eine API nur schlecht durchdacht (SingleThreadModel in der Servlet-API) und wird durch nichts ersetzt. Und einige der frühen Anrufe wurden von "Java Bean" -kompatiblen Methoden (Größe von getSize, Grenzen von getBounds etc.)


ersetzt

sevral SOLUTIONS GIBT ES GOOGLE es-- GERADE

Sie können date (long date) verwenden, indem Sie Ihren date String in lange Millisekunden umwandeln und stackoverflow so viele Posts für diesen Zweck bereitstellen.

converting a date string into milliseconds in java

0

Was sind Sie im Grunde zu tun versuchen, ist dies: -

Calendar cal = Calendar.getInstance(); 
Date date = cal.getTime(); 

Der Grund dafür ist, die String, die Sie drucken ist nur eine String Darstellung des Date in Ihr gewünschtes Format Wenn Sie versuchen, es in Datum zu konvertieren, werden Sie schließlich tun, was ich oben erwähnt habe.

Formatierung Date (cal.getTime()) zu einem String und zu versuchen, ein Date von ihm zurück zu bekommen - macht keinen Sinn. Date hat kein Format als solches. Sie können nur eine String Darstellung davon mit der SDF erhalten.

2
import java.util.Date; 
import java.text.SimpleDateFormat; 

Oben ist die Import-Methode, unter dem einfachen Code ist für Date

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date date = new Date(); 

system.out.println((dateFormat.format(date))); 
2

Versuchen Sie diese: -

try{ 
     String valuee="25/04/2013"; 
     Date currentDate =new SimpleDateFormat("dd/MM/yyyy").parse(valuee); 
     System.out.println("Date is ::"+currentDate); 
     }catch(Exception e){ 
      System.out.println("Error::"+e); 
      e.printStackTrace(); 
     } 

Ausgang: -

Date is ::Thu Apr 25 00:00:00 GMT+05:30 2013 

Ihr Wert sollte das richtige Format sein.

In Ihrer Frage auch haben Sie diese unten gestellt: -

Date currentDate = new Date(value); 

Diese Art von Datum Konstruktor ist bereits deprecated.So, seine nicht mehr use.Being wissen wir, dass seit 6 Konstruktor hat. Read more

+0

Ich möchte das aktuelle Datum –

0

Hier ist die optimierte Lösung, um es mit SimpleDateFormatparse() Methode zu tun.

SimpleDateFormat formatter = new SimpleDateFormat(
     "EEEE, dd/MM/yyyy/hh:mm:ss"); 
String strDate = formatter.format(new Date()); 

try { 
    Date pDate = formatter.parse(strDate); 
} catch (ParseException e) { // note: parse method can throw ParseException 
    e.printStackTrace(); 
} 

Nur wenige Dinge

  • Wir brauchen nicht zu bemerken, einen Kalender-Instanz zu erstellen, anstatt das aktuelle Datum & Zeit zu bekommen verwenden new Date()
  • es auch nicht 2 Instanzen benötigt von SimpleDateFormat als gefunden in der meist gewählten Antwort für diese Frage. Es ist nur eine Verschwendung von Speicher
  • Weiterhin eine allgemeine Ausnahme wie Exception ist eine schlechte Praxis zu kontrollieren, wenn wir wissen, dass die parse Methode nur dann eine Chance steht ein ParseException zu werfen. Wir müssen so spezifisch wie möglich im Umgang mit Ausnahmen sein. Sie können beziehen, throws Exception bad practice?
Verwandte Themen