In den meisten Apps, die wir erstellen, sind Datum und Uhrzeit eine Funktion, die wir gerne verwenden. Die Standardoptionen von java.util funktionieren zwar gut, aber sie sind nicht sehr effektiv und für etwas so Grundlegendes benötigen sie in der Regel viele eigene Lösungen. Dies birgt die Gefahr von Fehlern in sich, da wir in unserem Projekt eine Menge Kesselsteincode hinzufügen. Es gibt jedoch Lösungen, die bereits implementiert wurden und die wir leicht in unsere Anwendungen einbauen können. Diese erledigen die Aufgabe meist mit einer einzigen Zeile Code.

Mit diesen Bibliotheken können Sie z.B. die folgenden Aufgaben leicht erledigen:

  • Abfrage des Datums heute, gestern usw.
  • Abrufen des Datums in 2 Jahren oder in der Vergangenheit.
  • Hinzufügen einer bestimmten Zahl zu einem bestimmten Datum usw.

Sie erledigen diese Aufgaben mit einer einzigen Zeile Code. Schauen wir uns die Bibliotheken an:

(a). Tempo

Kotlin intuitive java.util.Date Erweiterungen.

Der einfachste Weg, um mit Datum und Uhrzeit zu arbeiten. Durch Tempo können Sie:

  1. Datetime abrufen und initialisieren.
  2. Daten vergleichen.
  3. Daten addieren/subtrahieren.
  4. Datum in einer benutzerfreundlichen, englischen Art und Weise anzeigen.
  5. Parsen und Formatieren von Daten usw.

Schritt 1: Tempo installieren

dependencies {
  implementation 'com.github.cesarferreira:tempo:0.7.0'
}

Schritt 2: Tempo verwenden

Hier ein Beispiel für die Verwendung von Tempo in Kotlin:

val now: Date = Tempo.now               //=> now
now + 1.week                            //=> next week
now - 2.days                            //=> day before yesterday
now + (3.weeks - 4.days + 5.hours)      //=> somewhere in 2 and a half weeks

Tempo.tomorrow                          //=> tomorrow
Tempo.yesterday                         //=> yesterday
1.day.ago                               //=> yesterday
3.weeks.ago                             //=> 3 weeks ago
5.years.forward                         //=> five years in the future

Initialisieren durch Angabe von Datumskomponenten

Tempo.with(year = 1990, month = 1, day = 21)    //=> 1990/01/21
Tempo.with(year = 2019, month = 6, day = 26, hour = 18, minute = 58, second = 31, millisecond = 777)

Initialisieren durch Ändern von Datumskomponenten

Tempo.now.with(month = 12, day = 25)    //=> this year's christmas
Date().with(month = 12, day = 25)       //=> this year's christmas

// shortcuts
Tempo.now.beginningOfYear     //=> new year's day
Tempo.now.endOfYear           //=> new year's eve

Wochentag / Eigenschaften prüfen

Tempo.now.isMonday
Tempo.now.isTuesday
Tempo.now.isWednesday
Tempo.now.isThursday
Tempo.now.isFriday
Tempo.now.isSaturday
Tempo.now.isSunday
Tempo.now.isWeekend
Tempo.now.isWeekday

Tempo.now.isToday                       // true
Tempo.tomorrow.isToday                  // false
Tempo.tomorrow.isTomorrow               // true
Tempo.yesterday.isYesterday             // true

Formatieren und Parsen

So formatieren und parsen Sie Datumsangaben mit Tempo:

5.minutes.forward.toString("yyyy-MM-dd HH:mm:ss")
//=> "2019-06-11 12:05:00"

"1988-03-02".toDate("yyyy-MM-dd")
//=> Tempo.with(year = 1988, month = 3, day = 2)

Datumsangaben vergleichen

Hier sehen Sie, wie Sie Datumsangaben in Kotlin mit Tempo vergleichen:

1.day.ago > 2.days.ago                  // true
1.day.ago in 2.days.ago..Tempo.now      // true

Referenz

Die vollständige Referenz finden Sie hier.

Kotlin Android DateTime - Die einfachste Art, mit Datum und Uhrzeit zu arbeiten

Schauen wir uns ein vollständiges Tempo-Beispiel an. In diesem Beispiel wird alles gezeigt, was Tempo zu bieten hat.

Schritt 1: Tempo installieren

Installieren Sie Tempo, wie wir es oben gesehen haben.

Außerdem werden wir ViewBinding in der App-Ebene build.gradle aktivieren:

   buildFeatures {
        viewBinding true
    }

ViewBinding ermöglicht es uns, Widgets in unserem Kotlin-Code einfach zu referenzieren.

Schritt 2: Layout erstellen

Unser Layout wird eine Listenansicht haben, die unsere Ergebnisse für den Benutzer darstellen wird.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity erstellen

MainActivity ist unsere einzige Aktivität im Projekt. Sie ist einfach zu erklären:

MainActivity.kt

package info.camposha.mr_tempo_datetime

import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.cesarferreira.tempo.*
import info.camposha.mr_tempo_datetime.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    private fun createDateExamples(): List<String> {
        val examples = listOf(
            "------   GET DATE,TIME   ----",
            "NOW: ${Tempo.now}",
            "INITIALIZATION: ${Tempo.with(year = 1990, month = 1, day = 21)}",
            "INITIALIZATION: ${Tempo.now.with(month = 12, day = 25)}",
            "",
            "-------  USER FRIENDLY READABLE DATES   -------",
            "TOMORROW: ${Tempo.tomorrow}",
            "YESTERDAY: ${Tempo.yesterday}",
            "",
            "-------  ADD OR SUBTRACT DATES   --------",
            "1 WEEK FROM NOW: " + (Tempo.now.plus(1.week)),
            "1 WEEK AGO: " + Tempo.now.minus(1.week),
            "2 DAYS AGO: " + Tempo.now.minus(2.days),
            "",
            "------   TIME AGO  ---------",
            "A DAY AGO: ${1.day.ago}",
            "3 WEEKS AGO: ${3.weeks.ago}",
            "5 YEARS FORWARD: ${5.years.forward}",
            "",
            "-------  SHORTCUTS   -----",
            "NEW YEAR: ${Tempo.now.beginningOfYear}",
            "END OF YEAR: ${Tempo.now.endOfYear}",
            "----CHECK DATE-----",
            "IS MONDAY: ${Tempo.now.isMonday}",
            "IS TUESDAY: ${Tempo.now.isTuesday}",
            "IS WEDNESDAY: ${Tempo.now.isWednesday}",
            "IS THURSDAY: ${Tempo.now.isThursday}",
            "IS FRIDAY: ${Tempo.now.isFriday}",
            "IS SATURDAY: ${Tempo.now.isSaturday}",
            "IS SUNDAY: ${Tempo.now.isSunday}",
            "IS WEEKEND: ${Tempo.now.isWeekend}",
            "IS WEEKDAY: ${Tempo.now.isWeekday}",
            "",
            "------  FORMAT AND PARSE  ------",
            "${5.minutes.forward.toString("yyyy-MM-dd HH:mm:ss")}",
            "${"1988-03-02".toDate("yyyy-MM-dd")}",
            "",
            "------  COMPARE  -------",
            "${1.day.ago > 2.days.ago}",
            "${1.day.ago in 2.days.ago..Tempo.now}"

        )
        return examples
    }

    private fun populateListView(data: List<String>) {
        binding.listView.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, data)
        binding.listView.setOnItemClickListener { _, _, i, _ ->
            Toast.makeText(this@MainActivity,data[i],Toast.LENGTH_SHORT).show()
         }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        populateListView(createDateExamples())
    }
}

Ausführen

Führen Sie den Code in android studio aus und Sie erhalten das folgende Ergebnis:

Android DateTime Example

Herunterladen

Laden Sie den Quellcode hier herunter.

(b). Karamba

Eine Sammlung von nützlichen Kotlin-Erweiterungen für Android.

Karamba ist nicht nur eine Datetime-Bibliothek, sondern eigentlich eine Utility-Bibliothek, die neben einigen häufig verwendeten Funktionen in der Android-Entwicklung auch einige einfach zu verwendende Datetime-Funktionen enthält.

Schritt 1: Installieren

Hinzufügen zu gradle in allprojects.

maven { url 'https://jitpack.io' }

Dann fügen Sie Folgendes hinzu

implementation 'com.github.matteocrippa:karamba:1.2.0'

Schritt 2: Wie man Karamba benutzt

Karamba bietet Ihnen eine Liste verschiedener und nützlicher Erweiterungen für Ihr Projekt, hier die Liste geordnet nach dem Typ der Erweiterung.

Allgemein

  • support(apiVersion), Lambda, das es erlaubt, Code nur dann auszuführen, wenn das aktuelle SDK der angegebenen Version entspricht
  • supportKitkat(), Lambda, das prüft, ob Kitkat unterstützt wird und den Code ausführt
  • supportLollipop(), Lambda, das prüft, ob Lollipop unterstützt wird, und den Code ausführt

Bitmap

  • base64(), erzeugt eine base64-Darstellung der aktuellen Bitmap
  • resize(height, width), passt die Größe des aktuellen Bitmaps an das neue Format an

Boolean

  • toggle(), behandelt den bool als toogle, ändert den Wert in das Gegenteil, dann wird der neue Wert zurückgegeben (noch nicht möglich, dies zu ändern)
  • random(), gibt einen zufälligen booleschen Wert zurück, dann wird der neue Wert zurückgegeben (noch nicht möglich, dies zu ändern)

Datum

  • convertTo(format), konvertiert das aktuelle Datum in ein als Argument angegebenes benutzerdefiniertes Format (z.B. dd-MM-yy HH:mm)
  • toCalendar(), wandelt das aktuelle Datum in das Format Calendar um
  • isFuture(), gibt true zurück, wenn das Datum in der Zukunft liegt
  • isPast(), gibt true zurück, wenn das Datum in der Vergangenheit liegt
  • isToday(), gibt zurück, ob das aktuelle Datum heute ist
  • isTomorrow(), gibt zurück, wenn das aktuelle Datum morgen ist
  • isYesterday(), gibt zurück, wenn das aktuelle Datum gestern ist
  • today(), gibt das heutige Datum zurück
  • tomorrow(), gibt das Datum von morgen zurück
  • yesterday(), gibt das Datum von gestern zurück
  • hour(), gibt die Stunde des aktuellen Datums als Zahl zurück
  • minute(), gibt die Minuten des aktuellen Datums als Zahl zurück
  • second(), gibt die Sekunden des aktuellen Datums als Zahl zurück
  • Monat(), gibt das aktuelle Datum Monat als Zahl zurück
  • Monatsname(), gibt das aktuelle Datum Monat als langen Namen zurück
  • Jahr(), gibt das aktuelle Datum Jahr als Zahl zurück
  • day(), gibt das aktuelle Datum Tag als Zahl zurück
  • dayOfWeek(), gibt das aktuelle Datum Wochentag als Zahl zurück
  • dayOfWeekName(), gibt das aktuelle Datum Wochentag als String zurück
  • dayOfYear(), gibt das aktuelle Datum Tag des Jahres als Zahl zurück

Double

  • localCurrency(currency), konvertiert das aktuelle Double in das als Argument übergebene Währungsformat (z.B. EUR)
  • celsiusToFahrenheit(), wandelt das aktuelle Double in Fahrenheit um
  • FahrenheitToCelsius()`, wandelt das aktuelle Double in Celsius um

Drawable

  • toBitmap(), wandelt das aktuelle Drawable in Bitmap um

Int

  • readableDistanceFromMeters(), konvertiert eine int Anzahl von Metern in eine lesbare Meter, Kilometer Entfernung
  • commaSeparatedId(), konvertiert ein Array von int, in einen String von durch Komma getrennten Elementen
  • random(), liefert eine Zufallszahl im angegebenen Bereich (z.B. (0..10).random())

Zeichenkette

  • isValidEmail(), gibt zurück, ob die aktuelle Zeichenkette eine gültige E-Mail ist
  • isUrl(), gibt zurück, ob die aktuelle Zeichenkette eine gültige Url ist
  • isNumeric(), gibt zurück, ob die aktuelle Zeichenkette eine Zahl enthält
  • isPhoneNumber(), gibt zurück, ob die aktuelle Zeichenkette eine Telefonnummer enthält
  • random(lenght), gibt eine zufällige Zeichenkette der angegebenen Länge zurück
  • toBitmap(), konvertiert den aktuellen base64-String in ein Bitmap
  • ellipsize(chars), verkleinert die aktuelle Zeichenkette und schneidet sie bei einer bestimmten Anzahl von Zeichen ab
  • toDate(format), konvertiert den aktuellen String in ein Date-Objekt unter Verwendung des angegebenen Formats
  • plainText(), entfernt alle html-Formatierungen aus der aktuellen Zeichenkette
  • toCamelCase(), wandelt die aktuelle Zeichenkette in Großbuchstaben um

Ansicht

  • toBitmap(), konvertiert aktuelle Ansicht in Bitmap.

(c). SimpleDate

Android/Kotlin Bibliothek zum Formatieren von Datum und Uhrzeit in gängige Formate.

Schritt 1: Installieren

In der Projektebene build.gradle:

allprojects {
   repositories {
      ...
      maven { url 'https://jitpack.io' }
    }
}

In app-level build.gradle:

dependencies {
     implementation 'com.github.sidhuparas:SimpleDate:2.1.0'
}

Schritt 2: Verwendung

Sie können die Methoden auf ein Datumsobjekt anwenden. Im Folgenden sind die verfügbaren Funktionen aufgeführt:

Für Datum und Uhrzeit

date
     .toDateTimeStandard()               // 13 August 2019 21:55:11
     .toDateTimeStandardIn12Hours()      // 13 August 2019 9:55:11 PM
     .toDateTimeStandardInDigits()       // 13-08-2019 21:55:11
     .toDateTimeStandardInDigitsAnd12Hours()     // 13-08-2019 9:55:11 PM
     .toDateTimeStandardConcise()                // 13 Aug 2019 21:55:11
     .toDateTimeStandardConciseIn12Hours()       // 13 Aug 2019 9:55:11 PM
     .toDateTimeYY()                     // 13 August 19 21:55:11
     .toDateTimeYYIn12Hours()            // 13 August 19 9:55:11 PM
     .toDateTimeYYInDigits()             // 13-08-19 21:55:11
     .toDateTimeYYInDigitsAnd12Hours()   // 13-08-19 9:55:11 PM
     .toDateTimeYYConcise()              // 13 Aug 19 21:55:11
     .toDateTimeYYConciseIn12Hours()     // 13 Aug 19 9:55:11 PM
     .toZuluFormat()                     // 2019-08-19T21:16:55:11.926Z

Nur für die Uhrzeit

date
     .toTimeStandard()                           // 21:55:11
     .toTimeStandardWithoutSeconds()             // 21:55
     .toTimeStandardIn12Hours()                  // 9:55:11 PM
     .toTimeStandardIn12HoursWithoutSeconds()    // 9:55 PM

Nur für Datum

date
      .toDateStandard()               // 13 August 2019
      .toDateStandardConcise()        // 13 Aug 2019
      .toDateStandardInDigits()       // 13-08-2019
      .toDateYY()                     // 13 August 19
      .toDateYYConcise()              // 13 Aug 19
      .toDateYYInDigits()             // 13-08-19
      .toDateYMD()                    // 2019 August 13
      .toDateYMDConcise()             // 2019 Aug 13
      .toDateYMDInDigits()            // 2019-08-13
      .toDateEMd()                    // Tue, Aug 13
      .toDateEMYShort()               // Tue, Aug 19
      .toDateEMY()                    // Tuesday, August 2019

Nur für den Tag

date.toDay()                    // Tuesday

Beispiele.

  • Kotlin:

   val date = Date()
   println(date.toDateTimeStandard())
  • Java:

    Date date = new Date();
    System.out.println(SimpleDateKt.toDateTimeStandard(date));

Referenz

Vollständige Referenz finden Sie hier.

(d). DateTimeUtils

Schritt 1: Installieren

Die DateTimeUtils Bibliothek ist verfügbar von JitPack.

Fügen Sie zunächst die JitPack-Abhängigkeitszeile in die Datei build.gradle Ihres Projekts ein:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Und dann fügen Sie einfach die folgende Zeile in den Abschnitt dependencies Ihrer App-Modul-Datei build.gradle ein:

implementation 'com.github.thunder413:DateTimeUtils:3.0'

Schritt 2: Verwenden

Verwenden Sie DateTimeUtils. Schauen wir uns einige Beispiele an.

setTimeZone

Mit setTimeZone können Sie Ihre Zeitzone definieren, standardmäßig ist es UTC.

DateTimeUtils.setTimeZone("UTC");

formatDate

formatDate ist eine Methode, die es erlaubt, Datumsobjekt in String oder timeStamp in Datum zu konvertieren und umgekehrt.

Datumsstring in Datumsobjekt

// MySQL/SQLite dateTime example
Date date = DateTimeUtils.formatDate("2017-06-13 04:14:49");
// Or also with / separator
Date date = DateTimeUtils.formatDate("2017/06/13 04:14:49");
// MySQL/SQLite date example
Date date = DateTimeUtils.formatDate("2017-06-13");
// Or also with / separator
Date date = DateTimeUtils.formatDate("2017/06/13");

Datumsobjekt in Datumsstring MySQL/SQLite

String date = DateTimeUtils.formatDate(new Date());

timeStamp zu Date-Objekt

Standardmäßig wird der angegebene Zeitstempel in Millisekunden betrachtet, aber falls Sie den Zeitstempel vom Server abgerufen haben, der normalerweise in Sekunden ist, geben Sie DateTimeUnits.SECONDS an, um die Funktion darüber zu informieren

// Using milliseconds
Date date = DateTimeUtils.formatDate(1497399731000);
// Using seconds (Server timeStamp)
Date date = DateTimeUtils.formatDate(1497399731,DateTimeUnits.SECONDS);

formatWithStyle

formatWithStyle` erlaubt es, das Datum in ein lokalisiertes Format zu parsen und dabei den gängigsten Stil zu verwenden

Date Objekt zu lokalisiertem Datum

DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.FULL); // Tuesday, June 13, 2017
DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.LONG); // June 13, 2017
DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.MEDIUM); // Jun 13, 2017
DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.SHORT); // 06/13/17

Date string zu lokalisiertem Datum

DateTimeUtils.formatWithStyle("2017-06-13", DateTimeStyle.FULL); // Tuesday, June 13, 2017
DateTimeUtils.formatWithStyle("2017-06-13", DateTimeStyle.LONG); // June 13, 2017
DateTimeUtils.formatWithStyle("2017-06-13", DateTimeStyle.MEDIUM); // Jun 13, 2017
DateTimeUtils.formatWithStyle("2017-06-13", DateTimeStyle.SHORT); // 06/13/17

formatWithPattern

Mit formatWithPattern können Sie Ihr eigenes Parse-Muster nach dem Schema von SimpleDateFormat definieren

Datumszeichenfolge als Quelle

DateTimeUtils.formatWithPattern("2017-06-13", "EEEE, MMMM dd, yyyy"); // Tuesday, June 13, 2017

Datumsobjekt als Quelle

DateTimeUtils.formatWithPattern(new Date(), "EEEE, MMMM dd, yyyy"); // Tuesday, June 13, 2017

isToday

isToday` Ermittelt, ob ein gegebenes Datum ein heutiges Datum ist oder nicht

// Date object as source
boolean state = DateTimeUtils.isToday(new Date());
// Date String as source
boolean state = DateTimeUtils.isToday("2017-06-15 04:14:49");

isYesterday

isYesterday` Ermittelt, ob ein gegebenes Datum das Datum von gestern ist oder nicht

// Date object as source
boolean state = DateTimeUtils.isYesterday(new Date());
// Date String as source
boolean state = DateTimeUtils.isYestrday("2017-06-15 04:14:49");

Vorherige nächste Woche erhalten

getPreviousWeekDate/getNextWeekDate Gibt das Datum der nächsten oder vorherigen Woche von einem gegebenen Datum zurück und erlaubt es auch, den Wochentag mit Hilfe der Kalenderkonstante zu setzen.

// Date object as source
Date date = DateTimeUtils.getPreviousWeekDate(new Date(), Calendar.MONDAY);
// Date String as source
Date date = DateTimeUtils.getNextWeekDate("2017-06-15 04:14:49",Calendar.SUNDAY);

Vorherigen nächsten Monat holen

getPreviousMonthDate/getNextMonthDate` Liefert das Datum des nächsten oder vorherigen Monats ab einem bestimmten Datum.

// Date object as source
Date date = DateTimeUtils.getNextMonthDate(new Date());
// Date String as source
Date date = DateTimeUtils.getPreviousMonthDate("2017-06-15 04:14:49");

getDateDiff

getDateDiff liefert die Differenz zwischen zwei Daten in Tagen, Stunden, Minuten, Sekunden oder Millisekunden DateTimeUnits

// Dates can be date object or date string
Date date = new Date();
String date2 = "2017-06-13 04:14:49";
// Get difference in milliseconds
int diff = DateTimeUtils.getDateDiff(date,date2, DateTimeUnits.MILLISECONDS);
// Get difference in seconds
int diff = DateTimeUtils.getDateDiff(date,date2, DateTimeUnits.SECONDS);
// Get difference in minutes
int diff = DateTimeUtils.getDateDiff(date,date2, DateTimeUnits.MINUTES);
// Get difference in hours
int diff = DateTimeUtils.getDateDiff(date,date2, DateTimeUnits.HOURS);
// Get difference in days
int diff = DateTimeUtils.getDateDiff(date,date2, DateTimeUnits.DAYS);

getTimeAgo

getTimeAgo gibt die verstrichene Zeit seit einem gegebenen Datum aus, es bietet auch zwei Druckmodi an, die volle und die kurze Zeichenkette eg . 3 hours ago | 3h ago`. Die Strings sind lokalisiert, aber im Moment sind nur die Sprachen FR und EN verfügbar. Wenn Sie Ihre Sprache hinzufügen möchten, lassen Sie es mich einfach wissen 🙂

String timeAgo = DateTimeUtils.getTimeAgo(context,new Date()); // Full string style will be used
// Short string style
String timeAgo = DateTimeUtils.getTimeAgo(context,"new Date()",DateTimeStyle.AGO_SHORT_STRING );

formatTime

formatTime erlaubt es Ihnen, die Zeit aus dem Datum zu extrahieren. Standardmäßig zeigt es die Stunden nicht an, wenn sie gleich 0 sind, aber Sie können den Parameter forceShowHours angeben, um die Anzeige der Stunden zu erzwingen

String time = DateTimeUtils.formatTime(new Date()); // 14:49 if hours equals 0 or 04:14:09 if hours witch is wrong when use it on time rather than a duration
// Solution >> force hours display
String time = DateTimeUtils.formatTime(new Date(),true);
// And you can also supplie a date string
String time = DateTimeUtils.formatTime("2017-06-13 04:14:49"); // 04:14:49

millisToTime

Der Parameter millisToTime ist nützlich, wenn man mit Zeitdauer zu tun hat und z.B. die Dauer des Spielers oder die aktuelle Abspielposition in einem für Menschen lesbaren Wert anzeigen möchte.

String time = DateTimeUtils.millisToTime(2515); // It take millis as an argument not seconds

timeToMillis

timeToMillis erlaubt die Konvertierung von time in millseconds.

int milliseconds = DateTimeUtils.timeToMillis("14:20"); // 860000

Beispiel

Hier ist ein vollständiges Beispiel:

MainActivity.java

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.github.thunder413.datetimeutils.DateTimeStyle;
import com.github.thunder413.datetimeutils.DateTimeUnits;
import com.github.thunder413.datetimeutils.DateTimeUtils;

import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Date date = new Date();
        DateTimeUtils.setDebug(true);

        Log.d(TAG,"Date To String >> "+DateTimeUtils.formatDate(new Date()));
        DateTimeUtils.setTimeZone("GMT");
        Log.d(TAG,"Previous month from today >> "+DateTimeUtils.formatDate(DateTimeUtils.getPreviousMonthDate(new Date())));
        Log.d(TAG,"Next month from today >> "+DateTimeUtils.formatDate(DateTimeUtils.getNextMonthDate(new Date())));
        Log.d(TAG,"Previous >> "+DateTimeUtils.formatDate(DateTimeUtils.getPreviousWeekDate(DateTimeUtils.formatDate(" 2019-05-06 22:32:57"), Calendar.MONDAY)));
        Log.d(TAG,"String To Date >> "+DateTimeUtils.formatDate("2017-06-13 04:14:49"));
        Log.d(TAG,"IsToDay >> "+DateTimeUtils.isToday(new Date()));
        Log.d(TAG,"IsToDay String >> "+DateTimeUtils.isToday("2017-06-15 04:14:49"));
        Log.d(TAG,"IsYesterdaY Date >> "+DateTimeUtils.isYesterday(new Date()));
        Log.d(TAG,"IsYesterdaY String >> "+DateTimeUtils.isYesterday("2017-06-12 04:14:49"));
        Log.d(TAG,"TimeAgo String >> "+DateTimeUtils.getTimeAgo(this,"2017-06-13 04:14:49"));
        Log.d(TAG,"TimeAgo Date >> "+DateTimeUtils.getTimeAgo(this,date));
        Log.d(TAG,"Diff in milliseconds >> "+DateTimeUtils.getDateDiff(new Date(),DateTimeUtils.formatDate("2017-06-13 04:14:49"), DateTimeUnits.MILLISECONDS));
        Log.d(TAG,"Diff in seconds >> "+DateTimeUtils.getDateDiff(new Date(),DateTimeUtils.formatDate("2017-06-13 04:14:49"), DateTimeUnits.SECONDS));
        Log.d(TAG,"Diff in minutes >> "+DateTimeUtils.getDateDiff(new Date(),DateTimeUtils.formatDate("2017-06-13 04:14:49"), DateTimeUnits.MINUTES));
        Log.d(TAG,"Diff in hours >> "+DateTimeUtils.getDateDiff(new Date(),DateTimeUtils.formatDate("2017-06-13 04:14:49"), DateTimeUnits.HOURS));
        Log.d(TAG,"Diff in days >> "+DateTimeUtils.getDateDiff(new Date(),DateTimeUtils.formatDate("2017-06-13 04:14:49"), DateTimeUnits.DAYS));
        Log.d(TAG,"Extract time from date >> "+DateTimeUtils.formatTime(new Date()));
        Log.d(TAG,"Extract time from dateString >> "+DateTimeUtils.formatTime("2017-06-13 04:14:49"));
        Log.d(TAG,"Millis to time  >> "+DateTimeUtils.millisToTime(25416660));
        Log.d(TAG,"Time to millis  >> "+DateTimeUtils.timeToMillis("14:20"));
        Log.d(TAG,"Revert Millis to time  >> "+DateTimeUtils.millisToTime(860000));
        Log.d(TAG,"FormatWithStyle  FULL >> "+DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.FULL));
        Log.d(TAG,"FormatWithStyle  LONG >> "+DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.LONG));
        Log.d(TAG,"FormatWithStyle  MEDIUM >> "+DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.MEDIUM));
        Log.d(TAG,"FormatWithStyle  SHORT >> "+DateTimeUtils.formatWithStyle(new Date(), DateTimeStyle.SHORT));

    }

}

Referenz

Javadocs sind hier.

Categorized in:

Tagged in: