Convert java.util.Data la String

Vreau să converti o java.util.Data obiect la un "String" în Java.

Formatul este 2010-05-30 22:15:52

Comentarii la întrebare (4)
Soluția

Converti un Data sa o String utilizarea DateFormat#format metoda:

String pattern = "MM/dd/yyyy HH:mm:ss";

// Create an instance of SimpleDateFormat used for formatting 
// the string representation of date according to the chosen pattern
DateFormat df = new SimpleDateFormat(pattern);

// Get the today date using Calendar object.
Date today = Calendar.getInstance().getTime();        
// Using DateFormat format method we can create a string 
// representation of a date with the defined format.
String todayAsString = df.format(today);

// Print the result!
System.out.println("Today is: " + todayAsString);

Din http://www.kodejava.org/examples/86.html

Comentarii (8)
Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = formatter.format(date);
Comentarii (1)

Commons-lang DateFormatUtils este plin de bunatati (dacă aveți commons-lang în classpath)

//Formats a date/time into a specific pattern
 DateFormatUtils.format(yourDate, "yyyy-MM-dd HH:mm:SS");
Comentarii (0)

tl;dr

myUtilDate.toInstant()  // Convert `java.util.Date` to `Instant`.
          .atOffset( ZoneOffset.UTC )  // Transform `Instant` to `OffsetDateTime`.
          .format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )  // Generate a String.
          .replace( "T" , " " )  // Put a SPACE in the middle.

2014-11-14 14:05:09

java.timp

Modul modern este cu java.timpul clase care acum înlocui supărătoare veche moștenire data de clase.

Prima converti java.util.Data la o Instant. A Instant clasa reprezinta un moment pe cronologie în UTC cu o rezoluție de nanosecunde (până la nouă (9) cifre de fracție zecimală).

Conversii de la/la java.timp sunt efectuate de către noi metode de adăugat la vechile clase.

Instant instant = myUtilDate.toInstant();

Ambele java.util.Data " și " java.timp.Instant sunt în UTC. Dacă doriți pentru a vedea data si ora UTC, așa să fie. Sun toString pentru a genera un Șir de caractere în standard ISO 8601 format.

String output = instant.toString();  

2014-11-14T14:05:09Z

Pentru alte formate, aveți nevoie pentru a transforma "Instant" în mai flexibil OffsetDateTime.

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );

odt.toString(): 2014-11-14T14:05:09+00:00

Pentru a obține un Șir de caractere în formatul dorit, specificați o DateTimeFormatter. Ai putea specifica un format personalizat. Dar mi-ar folosi unul dintre cele predefinite formatters (ISO_LOCAL_DATE_TIME), și înlocuiți " T " în producția cu un SPAȚIU.

String output = odt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );

2014-11-14 14:05:09

Apropo eu nu recomand acest tip de format în cazul în care ați intenționat pierde offset-de-UTC sau informațiile de fus orar. Creează ambiguitate în ceea ce privește sensul că șirul este data de valoarea în timp.

De asemenea, feriți-vă de pierdere de date, ca orice fracționată a doua este ignorat (efectiv redus) în Șirul de reprezentare de la data-valoarea în timp.

Pentru a vedea același moment, prin prisma unor anumite regiuni de perete-ceas de timp, se aplică o ZoneId pentru a obține o ZonedDateTime`.

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

zdt.toString(): 2014-11-14T14:05:09-05:00[America/Montreal]

Pentru a genera un String formatat, face la fel ca mai sus, dar a înlocui odt " cu " zdt.

String output = zdt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );

2014-11-14 14:05:09

Dacă a executa acest cod un număr foarte mare de ori, poate doriți să fie un pic mai eficientă și pentru a evita apelul la String::înlocuiți. Renunțarea la acel apel, de asemenea, face codul mai scurt. Dacă se dorește, specifica propriul model de formatare în propria DateTimeFormatter obiect. Cache-ul asta de exemplu, ca o constantă sau membru pentru reutilizare.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" );  // Data-loss: Dropping any fractional second.

Aplica formatare prin trecerea exemplu.

String output = zdt.format( f );

Despre java.timp

De java.time cadrul este construit în Java 8 și mai târziu. Aceste clase înlocui supărătoare vechi data de clase, cum ar fi java.util.Data, .Calendar, & java.text.SimpleDateFormat.

De Joda-Time, proiect, acum în modul de întreținere, sfătuiește migrarea la java.timp.

Pentru a afla mai multe, consultați Oracle Tutorial. Și de căutare Stack Overflow pentru mai multe exemple și explicații.

Mult de java.timp de funcționalitate este adaptată pentru Java 6 & 7 în ThreeTen-Backport și, de asemenea, adaptate la Android în ThreeTenABP (vezi Cum să utilizați...).

De ThreeTen-Extra proiectul se extinde java.timp cu clase suplimentare. Acest proiect este un teren de testare pentru posibile viitoare completări la java.timp.

Comentarii (1)

Altenativa unul-garnituri în plain old java:


String.format("The date: %tY-%tm-%td", date, date, date);

String.format("The date: %1$tY-%1$tm-%1$td", date);

String.format("Time with tz: %tY-%
Comentarii (0)

De ce nu't utilizați Joda (org.joda.timp.DateTime)? L's, practic un one-liner.

Date currentDate = GregorianCalendar.getInstance().getTime();
String output = new DateTime( currentDate ).toString("yyyy-MM-dd HH:mm:ss");

// output: 2014-11-14 14:05:09
Comentarii (1)

Se pare că sunteți în căutarea pentru SimpleDateFormat.

Format: yyyy-MM-dd kk:mm:ss

Comentarii (6)

În împușcat singur ;)

Pentru a obține Data

String date = new SimpleDateFormat("yyyy-MM-dd",   Locale.getDefault()).format(new Date());

Pentru a obține Timp

String time = new SimpleDateFormat("hh:mm", Locale.getDefault()).format(new Date());

Pentru a obține data și ora

String dateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefaut()).format(new Date());

Codificare fericit :)

Comentarii (1)

Dacă aveți nevoie doar de timp de la data, puteți folosi doar funcția de Șir.

Date test = new Date();
String dayString = test.toString();
String timeString = dayString.substring( 11 , 19 );

Acest lucru va reduce în mod automat timp parte din Șir și salvați-l în interiorul timeString.

Comentarii (1)
public static String formateDate(String dateString) {
    Date date;
    String formattedDate = "";
    try {
        date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",Locale.getDefault()).parse(dateString);
        formattedDate = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault()).format(date);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return formattedDate;
}
Comentarii (0)

Cel mai simplu mod de a utiliza, este după cum urmează:

currentISODate = new Date().parse("yyyy-MM-dd'T'HH:mm:ss", "2013-04-14T16:11:48.000");

în cazul în care "aaaa-LL-zz'T'HH:mm:ss" este format de lectură data

ieșire: Sun Apr 14 16:11:48 EEST 2013

Note: HH vs hh

  • HH se referă la timp de 24 de ore format
  • hh se referă la 12h format
Comentarii (1)

Aici sunt exemple de utilizarea de noi Java 8 Data API pentru a formata legacy `java.util.Data:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z")
        .withZone(ZoneOffset.UTC);
    String utcFormatted = formatter.format(date.toInstant()); 

    ZonedDateTime utcDatetime = date.toInstant().atZone(ZoneOffset.UTC);
    String utcFormatted2 = utcDatetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z"));
    // gives the same as above

    ZonedDateTime localDatetime = date.toInstant().atZone(ZoneId.systemDefault());
    String localFormatted = localDatetime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
    // 2011-12-03T10:15:30+01:00[Europe/Paris]

    String nowFormatted = LocalDateTime.now().toString(); // 2007-12-03T10:15:30.123

Este frumos despre DateTimeFormattercare poate fi eficient în cache cum este thread-safe (spre deosebire deSimpleDateFormat`).

Listă predefinită fomatters și model notație de referință.

Credite:

https://stackoverflow.com/questions/22463062/how-to-parse-format-dates-with-localdatetime-java-8

https://stackoverflow.com/questions/25376242/java8-java-util-date-conversion-to-java-time-zoneddatetime

https://stackoverflow.com/questions/25229124/format-instant-to-string

https://stackoverflow.com/questions/30234594/whats-the-difference-between-java-8-zoneddatetime-and-offsetdatetime

Comentarii (0)

Încercați acest lucru,

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Date
{
    public static void main(String[] args) 
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = "2013-05-14 17:07:21";
        try
        {
           java.util.Date dt = sdf.parse(strDate);         
           System.out.println(sdf.format(dt));
        }
        catch (ParseException pe)
        {
            pe.printStackTrace();
        }
    }
}

Ieșire:

2013-05-14 17:07:21

Pentru mai multe detalii privind data și ora de formatare în java consultați linkurile de mai jos

Oracle Centrul De Ajutor

Data exemplu in java

Comentarii (0)

Date date = new Date();
String strDate = String.format("%tY-%
Comentarii (0)
public static void main(String[] args) 
{
    Date d = new Date();
    SimpleDateFormat form = new SimpleDateFormat("dd-mm-yyyy hh:mm:ss");
    System.out.println(form.format(d));
    String str = form.format(d); // or if you want to save it in String str
    System.out.println(str); // and print after that
}
Comentarii (0)
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String date = "2010-05-30 22:15:52";
    java.util.Date formatedDate = sdf.parse(date); // returns a String when it is parsed
    System.out.println(sdf.format(formatedDate)); // the use of format function returns a String
Comentarii (0)

Las's încercați acest

public static void main(String args[]) {

    Calendar cal = GregorianCalendar.getInstance();
    Date today = cal.getTime();
    DateFormat df7 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    try {           
        String str7 = df7.format(today);
        System.out.println("String in yyyy-MM-dd format is: " + str7);            
    } catch (Exception ex) {
      ex.printStackTrace();
    }
}

Sau o funcție de utilitate

public String convertDateToString(Date date, String format) {
    String dateStr = null;
    DateFormat df = new SimpleDateFormat(format);

    try {
        dateStr = df.format(date);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return dateStr;
}

De la Data Conversia la String in Java

Comentarii (0)

O opțiune de Linie

Această opțiune devine o ușoară cu o singură linie pentru a scrie data efectivă.

vă Rugăm să rețineți că acest lucru este folosind Calendar.class " și " SimpleDateFormat, apoi se's nu logic să-l folosească în Java8.

yourstringdate =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
Comentarii (6)