Frage

Was ist der beste Weg, um eine String im Format '2, Januar 2010' zu einem Date in Java zu konvertieren?

Schließlich, ich möchte den Monat auszubrechen, den Tag und das Jahr als ganze Zahlen, so dass ich verwenden können,

Date date = new Date();
date.setMonth()..
date.setYear()..
date.setDay()..
date.setlong currentTime = date.getTime();

das Datum in der Zeit zu konvertieren.

War es hilfreich?

Lösung

Das ist die harte Art und Weise, und diejenigen java.util.Date Setter-Methoden veraltet sind seit Java 1.1 (1997). formatieren Sie einfach das Datum mit SimpleDateFormat ein Format Muster unter Verwendung der Eingangs-Anpassungs String .

In Ihrem speziellen Fall von "2. Januar 2010" als Eingangs string:

  1. "Januar" ist der vollständige Text Monat verwenden, so das MMMM Muster für sie
  2. "2" ist der kurze Tag-of-Monat verwenden, so das d Muster für sie.
  3. "2010" ist das 4-stellige Jahr, so verwenden Sie das yyyy Muster für sie.

String string = "January 2, 2010";
DateFormat format = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
Date date = format.parse(string);
System.out.println(date); // Sat Jan 02 00:00:00 GMT 2010

Beachten Sie die Bedeutung der expliziten Locale Argument. Wenn Sie es weglassen, dann wird es die default locale , das Englisch nicht unbedingt im Monat Namen der Eingabezeichenfolge als verwendet. Wenn das Gebietsschema nicht mit dem Eingabestring übereinstimmt, dann würden Sie zum Verwechseln eine java.text.ParseException bekommen, obwohl, wenn das Formatmuster gültig zu sein scheint.

Hier ist ein Auszug aus Relevanz von die javadoc , in dem alle verfügbaren Format Muster:

Letter  Date or Time Component  Presentation        Examples
------  ----------------------  ------------------  -------------------------------------
G       Era designator          Text                AD
y       Year                    Year                1996; 96
Y       Week year               Year                2009; 09
M/L     Month in year           Month               July; Jul; 07
w       Week in year            Number              27
W       Week in month           Number              2
D       Day in year             Number              189
d       Day in month            Number              10
F       Day of week in month    Number              2
E       Day in week             Text                Tuesday; Tue
u       Day number of week      Number              1
a       Am/pm marker            Text                PM
H       Hour in day (0-23)      Number              0
k       Hour in day (1-24)      Number              24
K       Hour in am/pm (0-11)    Number              0
h       Hour in am/pm (1-12)    Number              12
m       Minute in hour          Number              30
s       Second in minute        Number              55
S       Millisecond             Number              978
z       Time zone               General time zone   Pacific Standard Time; PST; GMT-08:00
Z       Time zone               RFC 822 time zone   -0800
X       Time zone               ISO 8601 time zone  -08; -0800; -08:00

Beachten Sie, dass die Muster sind Groß- und Kleinschreibung und dass textbasierte Muster von vier Zeichen oder mehr die volle Form darstellen; sonst eine kurze oder abgekürzte Form wird verwendet, sofern vorhanden. So zum Beispiel MMMMM oder mehr ist nicht erforderlich.

Hier sind einige Beispiele für gültiges SimpleDateFormat Muster eine bestimmte Zeichenkette bisher zu analysieren:

Input string                            Pattern
------------------------------------    ----------------------------
2001.07.04 AD at 12:08:56 PDT           yyyy.MM.dd G 'at' HH:mm:ss z
Wed, Jul 4, '01                         EEE, MMM d, ''yy
12:08 PM                                h:mm a
12 o'clock PM, Pacific Daylight Time    hh 'o''clock' a, zzzz
0:08 PM, PDT                            K:mm a, z
02001.July.04 AD 12:08 PM               yyyyy.MMMM.dd GGG hh:mm aaa
Wed, 4 Jul 2001 12:08:56 -0700          EEE, d MMM yyyy HH:mm:ss Z
010704120856-0700                       yyMMddHHmmssZ
2001-07-04T12:08:56.235-0700            yyyy-MM-dd'T'HH:mm:ss.SSSZ
2001-07-04T12:08:56.235-07:00           yyyy-MM-dd'T'HH:mm:ss.SSSXXX
2001-W27-3                              YYYY-'W'ww-u

Ein wichtiger Hinweis ist, dass SimpleDateFormat ist nicht Thread-sicher. Mit anderen Worten, sollten Sie nie erklären und es als ein statisches oder Instanz Variablen zuweisen und dann von verschiedenen Methoden / Threads wiederverwenden. Sie sollten es immer schaffen brandneue innerhalb der Methode lokalen Bereich.


Java 8 update

Wenn Sie auf Java 8 oder höher sein passieren, dann verwenden Sie DateTimeFormatter (auch hier, klicken Sie auf den Link, um alle vordefinierten Formatierer und verfügbaren Format Muster zu sehen, ist das Tutorial hier verfügbar). Diese neue API ist inspiriert von JodaTime .

String string = "January 2, 2010";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(string, formatter);
System.out.println(date); // 2010-01-02

Hinweis: Wenn Ihr Format Muster als auch die Zeit, Teil enthalten geschieht, dann verwenden Sie LocalDateTime#parse(text, formatter) anstelle von LocalDate#parse(text, formatter) . Und wenn Ihr Format Muster passiert, als auch die Zeitzone enthält, verwenden Sie ZonedDateTime#parse(text, formatter) statt.

Hier ist ein Auszug aus Relevanz von javadoc , in dem alle verfügbaren Format Muster:

Symbol  Meaning                     Presentation  Examples
------  --------------------------  ------------  ----------------------------------------------
G       era                         text          AD; Anno Domini; A
u       year                        year          2004; 04
y       year-of-era                 year          2004; 04
D       day-of-year                 number        189
M/L     month-of-year               number/text   7; 07; Jul; July; J
d       day-of-month                number        10

Q/q     quarter-of-year             number/text   3; 03; Q3; 3rd quarter
Y       week-based-year             year          1996; 96
w       week-of-week-based-year     number        27
W       week-of-month               number        4
E       day-of-week                 text          Tue; Tuesday; T
e/c     localized day-of-week       number/text   2; 02; Tue; Tuesday; T
F       week-of-month               number        3

a       am-pm-of-day                text          PM
h       clock-hour-of-am-pm (1-12)  number        12
K       hour-of-am-pm (0-11)        number        0
k       clock-hour-of-am-pm (1-24)  number        0

H       hour-of-day (0-23)          number        0
m       minute-of-hour              number        30
s       second-of-minute            number        55
S       fraction-of-second          fraction      978
A       milli-of-day                number        1234
n       nano-of-second              number        987654321
N       nano-of-day                 number        1234000000

V       time-zone ID                zone-id       America/Los_Angeles; Z; -08:30
z       time-zone name              zone-name     Pacific Standard Time; PST
O       localized zone-offset       offset-O      GMT+8; GMT+08:00; UTC-08:00;
X       zone-offset 'Z' for zero    offset-X      Z; -08; -0830; -08:30; -083015; -08:30:15;
x       zone-offset                 offset-x      +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z       zone-offset                 offset-Z      +0000; -0800; -08:00;

Zu beachten ist, dass es mehrere vordefinierte Formatierer für den populäreren Muster. Anstatt also z.B. DateTimeFormatter.ofPattern("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);, könnten Sie DateTimeFormatter.RFC_1123_DATE_TIME verwenden. Dies ist möglich, weil sie sind, aufder im Gegensatz zu SimpleDateFormat, fädelt sicher. Sie könnten also auch eigene definieren, falls erforderlich.

ein Standard ISO 8601:

Für eine bestimmte Eingabe-String-Format, nicht wahr eine explizite DateTimeFormatter verwenden müssen Datum, wie 2016-09-26T17: 44: 57z kann LocalDateTime#parse(text) wie es bereits die ISO_LOCAL_DATE_TIME Formatierer. In ähnlicher Weise LocalDate#parse(text) Parsen ein ISO-Datum ohne Zeitkomponente (siehe ISO_LOCAL_DATE ) und ZonedDateTime#parse(text) Parsen ein ISO-Datum mit einem Offset und Zeitzone (siehe ISO_ZONED_DATE_TIME ).

Andere Tipps

Ah ja die Java Date Diskussion wieder. Um mit Datum Manipulation beschäftigen wir benutzen Datum Kalender , GregorianCalendar und Simple . Zum Beispiel mit Ihrem Januar Datum als Eingabe:

Calendar mydate = new GregorianCalendar();
String mystring = "January 2, 2010";
Date thedate = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//breakdown
System.out.println("mydate -> "+mydate);
System.out.println("year   -> "+mydate.get(Calendar.YEAR));
System.out.println("month  -> "+mydate.get(Calendar.MONTH));
System.out.println("dom    -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow    -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour   -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli  -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm   -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod    -> "+mydate.get(Calendar.HOUR_OF_DAY));

Dann können Sie diese manipulieren mit so etwas wie:

Calendar now = Calendar.getInstance();
mydate.set(Calendar.YEAR,2009);
mydate.set(Calendar.MONTH,Calendar.FEBRUARY);
mydate.set(Calendar.DAY_OF_MONTH,25);
mydate.set(Calendar.HOUR_OF_DAY,now.get(Calendar.HOUR_OF_DAY));
mydate.set(Calendar.MINUTE,now.get(Calendar.MINUTE));
mydate.set(Calendar.SECOND,now.get(Calendar.SECOND));
// or with one statement
//mydate.set(2009, Calendar.FEBRUARY, 25, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND));
System.out.println("mydate -> "+mydate);
System.out.println("year   -> "+mydate.get(Calendar.YEAR));
System.out.println("month  -> "+mydate.get(Calendar.MONTH));
System.out.println("dom    -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow    -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour   -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli  -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm   -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod    -> "+mydate.get(Calendar.HOUR_OF_DAY));
String str_date = "11-June-07";
DateFormat formatter;
Date date;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = formatter.parse(str_date);

Mit Java 8 wir ein neues Datum / Zeit-API erhalten ( JSR 310 ).

In der folgenden Art und Weise verwendet werden, um das Datum in Java 8 zu analysieren, ohne sich auf Joda-Time

 String str = "January 2nd, 2010";

// if we 2nd even we have changed in pattern also it is not working please workout with 2nd 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM Q, yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(str, formatter);

// access date fields
int year = date.getYear(); // 2010
int day = date.getDayOfMonth(); // 2
Month month = date.getMonth(); // JANUARY
int monthAsInt = month.getValue(); // 1

LOCALDATE ist der Standard-Java 8 Klasse zum darstellen eines Datums (ohne Zeit). Wenn Sie Parsen Werte mögen, die Datums- und Zeitinformationen enthalten sollten Sie Local . Für Werte mit Zeitzonen verwenden ZonedDateTime . Beide bieten eine parse() ähnliches Verfahren wie LocalDate:

LocalDateTime dateWithTime = LocalDateTime.parse(strWithDateAndTime, dateTimeFormatter);
ZonedDateTime zoned = ZonedDateTime.parse(strWithTimeZone, zoneFormatter);

Die Liste Formatierungszeichen von DateTimeFormatter Javadoc :

All letters 'A' to 'Z' and 'a' to 'z' are reserved as pattern letters. 
The following pattern letters are defined:

Symbol  Meaning                     Presentation      Examples
------  -------                     ------------      -------
 G       era                         text              AD; Anno Domini; A
 u       year                        year              2004; 04
 y       year-of-era                 year              2004; 04
 D       day-of-year                 number            189
 M/L     month-of-year               number/text       7; 07; Jul; July; J
 d       day-of-month                number            10

 Q/q     quarter-of-year             number/text       3; 03; Q3; 3rd quarter
 Y       week-based-year             year              1996; 96
 w       week-of-week-based-year     number            27
 W       week-of-month               number            4
 E       day-of-week                 text              Tue; Tuesday; T
 e/c     localized day-of-week       number/text       2; 02; Tue; Tuesday; T
 F       week-of-month               number            3

 a       am-pm-of-day                text              PM
 h       clock-hour-of-am-pm (1-12)  number            12
 K       hour-of-am-pm (0-11)        number            0
 k       clock-hour-of-am-pm (1-24)  number            0

 H       hour-of-day (0-23)          number            0
 m       minute-of-hour              number            30
 s       second-of-minute            number            55
 S       fraction-of-second          fraction          978
 A       milli-of-day                number            1234
 n       nano-of-second              number            987654321
 N       nano-of-day                 number            1234000000

 V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30
 z       time-zone name              zone-name         Pacific Standard Time; PST
 O       localized zone-offset       offset-O          GMT+8; GMT+08:00; UTC-08:00;
 X       zone-offset 'Z' for zero    offset-X          Z; -08; -0830; -08:30; -083015; -08:30:15;
 x       zone-offset                 offset-x          +0000; -08; -0830; -08:30; -083015; -08:30:15;
 Z       zone-offset                 offset-Z          +0000; -0800; -08:00;

Während einige der Antworten technisch korrekt sind, sind sie nicht zu empfehlen.

  • Die java.util.Date & Kalender Klassen sind notorisch schwierig. Aufgrund von Fehlern in Design und Implementierung, vermeiden sie. Zum Glück haben wir unsere Wahl von zwei anderen ausgezeichneten Datum Zeitbibliotheken:
    • Joda-Time
      Das beliebte Open Quelle frei-of-Kosten-Bibliothek kann über mehrere Versionen von Java verwendet werden. Viele Beispiele für seine Verwendung kann auf Stackoverflow zu finden. einige von ihnen lesen, werden Sie helfen, schnell zu beschleunigen.
    • java.time. * Paket
      Dieser neue Satz von Klassen von Joda-Time und definiert durch JSR 310. Diese Klassen sind in der Java 8. ein Projekt inspiriert ist im Gang, diese Klassen Java 7, aber das Backporting zurückzuzuportieren nicht unterstützt durch Oracle ist.
  • Wie Kristopher Johnson richtig in seinem Kommentar auf die Frage erwähnt, ignorieren die anderen Antworten wichtige Fragen aus:
    • Tageszeit
      Datum hat sowohl einen Datumsteil und einen Time-of-day-Teil)
    • Zeitzone
      Der Beginn eines Tages auf der Zeitzone abhängt. Wenn Sie nicht eine Zeitzone angeben, wird die Standardzeitzone des JVM angewendet wird. Das bedeutet, dass das Verhalten des Codes ändern kann, wenn sie auf anderen Computern oder mit einer modifizierten Zeitzoneneinstellung ausgeführt werden. Wahrscheinlich nicht, was Sie wollen.
    • Locale
      Die Locale Sprache gibt an, wie die Worte zu interpretieren (Name des Monats und des Tages) angetroffen während der Analyse. (Die Antwort von BalusC Griffe dies richtig.) Auch die Locale die Ausgabe einiger Formatierer auswirkt, wenn eine String-Darstellung der Erzeugung Ihre Datum-Zeit.

Joda-Time

Ein paar Anmerkungen über Joda-Time folgen.

Zeitzone

Joda-Time , ein Sommerzeit (DST) oder andere Anomalien. By the way, können Sie das gleiche auf jede Instanz Datetime tun, indem withTimeAtStartOfDay aufrufen.

Formatter Muster

Die Zeichen in einer Formatierer des Musters verwendet werden, sind ähnlich in Joda-Time zu den in java.util.Date/Calendar aber nicht genau das gleiche. Lesen Sie sorgfältig die doc.

Unveränderlichkeit

Wir verwenden in der Regel die unveränderlichen Klassen in Joda-Time. Anstatt ein vorhandenes Date-Time-Objekt zu ändern, rufen wir Methoden, die eine neue frische Instanz erstellen, basierend auf dem anderen Objekt mit den meisten Aspekten kopiert, außer wo Veränderungen gewünscht wurden. Ein Beispiel dafür ist der Aufruf von withZone in letzter Zeile unten. Unveränderlichkeit hilft Joda-Time sehr Thread-sicher und kann auch einige Arbeit deutlich machen zu machen.

Conversion

Sie müssen java.util.Date Objekte für die Verwendung mit anderen Klassen / Rahmen, die nicht wissen über Joda-Time-Objekte. Glücklicherweise,es ist sehr leicht hin und her zu bewegen.

Wenn man von einem java.util.Date Objekt (hier genannt date) zu Joda-Time Datetime ...

org.joda.time.DateTime dateTime = new DateTime( date, timeZone );

Möchten Sie in die andere Richtung von Joda-Time zu einem java.util.Date Objekt ...

java.util.Date date = dateTime.toDate();

Beispielcode

String input = "January 2, 2010";

java.util.Locale locale = java.util.Locale.US;
DateTimeZone timeZone = DateTimeZone.forID( "Pacific/Honolulu" ); // Arbitrarily chosen for example.
DateTimeFormatter formatter = DateTimeFormat.forPattern( "MMMM d, yyyy" ).withZone( timeZone ).withLocale( locale );
DateTime dateTime = formatter.parseDateTime( input );

System.out.println( "dateTime: " + dateTime );
System.out.println( "dateTime in UTC/GMT: " + dateTime.withZone( DateTimeZone.UTC ) );

Wenn run ...

dateTime: 2010-01-02T00:00:00.000-10:00
dateTime in UTC/GMT: 2010-01-02T10:00:00.000Z

Während die Simple Klasse auf dem Umgang, ist es wichtig, dass Datum zu erinnern, ist nicht Thread-sicher und man kann nicht ein einziges Date-Objekt mit mehreren Threads gemeinsam nutzen.

Auch gibt es großen Unterschied zwischen „m“ und „M“ in den kleine Gehäuse für Minuten verwendet wird und Kapital Fall wird für Monat verwendet. Das gleiche mit „d“ und „D“. Dies kann geringfügigen Fehler verursacht, die oft übersehen werden. Siehe Javadoc oder Leitfaden zum Konvertieren von String to Date in Java für weitere Details.

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date;
try {
    date = dateFormat.parse("2013-12-4");
    System.out.println(date.toString()); // Wed Dec 04 00:00:00 CST 2013

    String output = dateFormat.format(date);
    System.out.println(output); // 2013-12-04
} 
catch (ParseException e) {
    e.printStackTrace();
}

Es funktioniert gut für mich.

Auch ist nicht Simple mit einigen der Client-Technologien zur Verfügung, wie GWT .

Es ist eine gute Idee für Calendar.getInstance gehen () und Ihre Anforderung ist zwei Daten zu vergleichen; geht für langes Datum.

Einfache zwei Formatter haben wir verwendet:

  1. Welches Format Datum wollen wir?
  2. Welches Format Datum tatsächlich vorhanden ist?

Wir analysieren das volle Datum Zeitformat:

date="2016-05-06 16:40:32";

public static String setDateParsing(String date) throws ParseException {

    // This is the format date we want
    DateFormat mSDF = new SimpleDateFormat("hh:mm a");

    // This format date is actually present
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:mm");
    return mSDF.format(formatter.parse(date));
}

Meine bescheidene Prüfprogramm. Ich benutze es mit dem Formatierer und Nachschau lange Tage, zu spielen, um, dass ich in Log-Dateien finden (aber wer sie hat dort setzen ...).

Mein Testprogramm:

package be.test.package.time;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;

public class TimeWork {

    public static void main(String[] args) {    

        TimeZone timezone = TimeZone.getTimeZone("UTC");

        List<Long> longs = new ArrayList<>();
        List<String> strings = new ArrayList<>();

        //Formatting a date needs a timezone - otherwise the date get formatted to your system time zone.
        //Use 24h format HH. In 12h format hh can be in range 0-11, which makes 12 overflow to 0.
        DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss.SSS");
        formatter.setTimeZone(timezone);

        Date now = new Date();

        //Test dates
        strings.add(formatter.format(now));
        strings.add("01-01-1970 00:00:00.000");
        strings.add("01-01-1970 00:00:01.000");
        strings.add("01-01-1970 00:01:00.000");
        strings.add("01-01-1970 01:00:00.000");
        strings.add("01-01-1970 10:00:00.000");
        strings.add("01-01-1970 12:00:00.000");
        strings.add("01-01-1970 24:00:00.000");
        strings.add("02-01-1970 00:00:00.000");
        strings.add("01-01-1971 00:00:00.000");
        strings.add("01-01-2014 00:00:00.000");
        strings.add("31-12-1969 23:59:59.000");
        strings.add("31-12-1969 23:59:00.000");
        strings.add("31-12-1969 23:00:00.000");

        //Test data
        longs.add(now.getTime());
        longs.add(-1L);
        longs.add(0L); //Long date presentation at - midnight 1/1/1970 UTC - The timezone is important!
        longs.add(1L);
        longs.add(1000L);
        longs.add(60000L);
        longs.add(3600000L);
        longs.add(36000000L);
        longs.add(43200000L);
        longs.add(86400000L);
        longs.add(31536000000L);
        longs.add(1388534400000L);
        longs.add(7260000L);
        longs.add(1417706084037L);
        longs.add(-7260000L);

        System.out.println("===== String to long =====");

        //Show the long value of the date
        for (String string: strings) {
            try {
                Date date = formatter.parse(string);
                System.out.println("Formated date : " + string + " = Long = " + date.getTime());
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }

        System.out.println("===== Long to String =====");

        //Show the date behind the long
        for (Long lo : longs) {
            Date date = new Date(lo);
            String string = formatter.format(date);
            System.out.println("Formated date : " + string + " = Long = " + lo);        
        }
    }
}

Testergebnisse:

===== String to long =====
Formated date : 05-12-2014 10:17:34.873 = Long = 1417774654873
Formated date : 01-01-1970 00:00:00.000 = Long = 0
Formated date : 01-01-1970 00:00:01.000 = Long = 1000
Formated date : 01-01-1970 00:01:00.000 = Long = 60000
Formated date : 01-01-1970 01:00:00.000 = Long = 3600000
Formated date : 01-01-1970 10:00:00.000 = Long = 36000000
Formated date : 01-01-1970 12:00:00.000 = Long = 43200000
Formated date : 01-01-1970 24:00:00.000 = Long = 86400000
Formated date : 02-01-1970 00:00:00.000 = Long = 86400000
Formated date : 01-01-1971 00:00:00.000 = Long = 31536000000
Formated date : 01-01-2014 00:00:00.000 = Long = 1388534400000
Formated date : 31-12-1969 23:59:59.000 = Long = -1000
Formated date : 31-12-1969 23:59:00.000 = Long = -60000
Formated date : 31-12-1969 23:00:00.000 = Long = -3600000
===== Long to String =====
Formated date : 05-12-2014 10:17:34.873 = Long = 1417774654873
Formated date : 31-12-1969 23:59:59.999 = Long = -1
Formated date : 01-01-1970 00:00:00.000 = Long = 0
Formated date : 01-01-1970 00:00:00.001 = Long = 1
Formated date : 01-01-1970 00:00:01.000 = Long = 1000
Formated date : 01-01-1970 00:01:00.000 = Long = 60000
Formated date : 01-01-1970 01:00:00.000 = Long = 3600000
Formated date : 01-01-1970 10:00:00.000 = Long = 36000000
Formated date : 01-01-1970 12:00:00.000 = Long = 43200000
Formated date : 02-01-1970 00:00:00.000 = Long = 86400000
Formated date : 01-01-1971 00:00:00.000 = Long = 31536000000
Formated date : 01-01-2014 00:00:00.000 = Long = 1388534400000
Formated date : 01-01-1970 02:01:00.000 = Long = 7260000
Formated date : 04-12-2014 15:14:44.037 = Long = 1417706084037
Formated date : 31-12-1969 21:59:00.000 = Long = -7260000

Sie können Simpleänderungs Zeichenfolge Datum verwenden

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = "2000-01-01";
Date date = new Date(sdf.parse(strDate).getTime());

Link-

Android

Calendar.getInstance (). GetTime () gibt

Thu Jul 26 15:54:13 GMT+05:30 2018

Mit

String oldDate = "Thu Jul 26 15:54:13 GMT+05:30 2018";
DateFormat format = new SimpleDateFormat("EEE LLL dd HH:mm:ss Z yyyy");
Date updateLast = format.parse(oldDate);

Versuchen Sie diese

String date = get_pump_data.getString("bond_end_date");
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date datee = (Date)format.parse(date);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top