Szerezd meg az aktuális dátumot a Java 8 előtt
1. Bemutatkozás
A régi rendszerekben előfordulhat, hogy olyan dátumokkal kell dolgoznunk, amikor sem az új dátum és idő API, sem az erősen ajánlott Joda-Time könyvtár nem áll rendelkezésre.
Ebben a rövid bemutatóban számos megközelítést vessünk szemügyre hogyan lehet lekérni az aktuális dátumot a Java 8 előtti rendszerekben.
2. Rendszeridő
Amikor csak egyetlen számszerű értékre van szükségünk, amely az aktuális dátumot és időpontot képviseli, használhatjuk a rendszer idejét. Az azóta eltelt milliszekundumok számának megszerzése 1970. január 1. 00:00:00 GMT használhatjuk a currentTimeMillis metódus, amely a hosszú:
long elapsedMilliseconds = System.currentTimeMillis ();
Amikor az eltelt időt nagyobb pontossággal akarjuk mérni, használhatjuk a nanoTime módszer. Ez visszaadja a rögzített, de tetszőleges pillanatból eltelt nanoszekundumok értékét.
Ez a tetszőleges idő a JVM-en belüli összes hívásnál megegyezik, így a visszaadott érték csak a több hívás között eltelt nanoTime:
rég elteltNanosecondsStart = System.nanoTime (); long elapsedNanoseconds = System.nanoTime () - elapsedNanosecondsStart;
3. Az java.util Csomag
Osztályok használata a java.util csomagot képviselhetünk egy pillanatban, általában az azóta eltelt milliszekundumokkal 1970. január 1. 00:00:00 GMT.
3.1. java.util.Dátum
Egy adott dátumot és időpontot képviselhetünk az a használatával Dátum tárgy. Ez milliszekundum pontosságot és az időzóna információkat tartalmazza.
Bár sok kivitelező áll rendelkezésre, a. Legegyszerűbb módja a Dátum Az aktuális dátumot megjelenítő objektum a helyi időzónában az alapvető konstruktort használja:
Dátum currentUtilDate = új dátum ();
Most hozzunk létre egy Dátum objektum egy adott dátumra és időre. Használhatnánk a fent említett konstruktorokat, és egyszerűen átadhatnánk a milliszekundum értéket.
Alternatív megoldásként használhatjuk a SimpleDateFormat osztály átalakítására a Húr érték egy tényleges értékre Dátum tárgy:
SimpleDateFormat dateFormatter = new SimpleDateFormat ("éééé-hh-éééé ÓÓ: h: mm"); Dátum customUtilDate = dateFormatter.parse ("2020-01-30 10:11:12");
A dátumminták széles skáláját használhatjuk igényeinknek megfelelően.
3.2. java.util.Naptár
A Naptár objektum megteheti, amit a Dátum csinál, és ez van jobb a dátumszámtani számításokhoz, mivel a Területi beállítás. Megadhatjuk a Területi beállítás mint földrajzi, politikai vagy kulturális régió.
Az aktuális dátum lekéréséhez, nem Időzóna vagy Területi beállítás megadott, használhatjuk a getInstance módszer:
Naptár currentUtilCalendar = Calendar.getInstance ();
És azért Naptár nak nek Dátum konverziót, egyszerűen használhatjuk a getTime módszer:
Dátum currentDate = Naptár.getInstance (). GetTime ();
Szórakoztató tényként a Gergely naptár osztály a világon leggyakrabban használt naptár megvalósítása.
4. A java.sql Csomag
Ezután a .3 kiterjesztését vizsgáljuk meg java.util.Dátum osztály, amely az egyenértékű SQL objektumokat képviseli.
4.1. java.sql.Date
Val,-vel java.sql.Date tárgy, nincs hozzáférésünk az időzóna információkhoz, a pontosság pedig napi szinten csonka. A mai ábrázoláshoz használhatjuk azt a konstruktort, amely a hosszú ezredmásodpercek ábrázolása:
Dátum currentSqlDate = új dátum (System.currentTimeMillis ());
Akárcsak korábban, egy adott dátumra is használhatjuk a SimpleDateFormat osztályba konvertálni java.util.Dátum először, majd kapjuk meg a milliszekundumokat a getTime módszer. Ezután átadhatjuk ezt az értéket a java.sql.Date konstruktőr.
Egyszerűen használhatjuk a értéke módszer, amikor a Húr ábrázolása a Dátum illeszkedik a éééé- [m] m- [d] d minta:
Dátum customSqlDate = Date.valueOf ("2020-01-30");
4.2. java.sql.Time
A java.sql.Time objektum ajánlatokat hozzáférés az óra, a perc és a második információhoz - még egyszer, időzónához való hozzáférés nélkül. Szerezzük meg az áramot Idő ezredmásodperces reprezentációval:
Idő currentSqlTime = új idő (System.currentTimeMillis ());
Idő megadása a értéke módszerrel átadhatunk egy értéket, amely megfelel a óó: mm: ss minta:
Idő customSqlTime = Time.valueOf ("10:11:12");
4.3. java.sql.Timestamp
Ebben az utolsó szakaszban egyesítjük az SQL-t Dátum és Idő információkat a Időbélyeg osztály. Ez lehetővé teszi számunkra, hogy nanomásodpercekig.
Hozzunk létre egy Időbélyeg objektumot ismét elhaladva a hosszú a konstruktor aktuális milliszekundumainak értéke:
Időbélyegző currentSqlTimestamp = új időbélyeg (System.currentTimeMillis ());
Végül hozzunk létre egy új szokást Időbélyeg használni a értéke módszer a szükséges éééé- [m] m- [d] d óó: hh: mm: ss [.f…] minta:
Timestamp customSqlTimestamp = Timestamp.valueOf ("2020-1-30 10: 11: 12.123456789");
5. Következtetés
Ebben a rövid bemutatóban azt láthattuk, hogyan lehet lekérni az aktuális dátumot és az adott pillanat dátumát a Java 8 vagy bármilyen külső könyvtár használata nélkül.
Mint mindig, a cikk kódja elérhető a GitHubon.