JavaRush /Java Blog /Random-TK /Wagtynda nädip ýitmeli däl - Sene wagty we senenama

Wagtynda nädip ýitmeli däl - Sene wagty we senenama

Toparda çap edildi
Salam! Bu gün biz ozal görmedik täze maglumat görnüşimiz, ýagny seneler bilen işe başlarys. Wagtynda nädip ýitmeli däl - Sene wagty we senenama - 1Sene nämedigini düşündirmegiň zerurlygy ýok öýdýärin :) Aslynda häzirki senäni we wagty Java-da adaty setirde ýazmak mümkin.
public class Main {
   public static void main(String[] args) {

       String date = "June 11, 2018";
       System.out.println(date);
   }
}
Emma bu çemeleşmäniň köp kemçilikleri bar. Synp Stringtekst bilen işlemek üçin döredildi we onuň degişli usullary bar. Sene nädip dolandyrylmaly bolsa (mysal üçin oňa 2 sagat goşuň), Stringbu ýerde işlemez. Ora-da meselem, programmanyň konsolda düzülen wagtyny we wagtyny görkeziň. Bu ýerde String-de peýdasy degmez: kod ýazyp, işledeniňizde wagt üýtgär we ähmiýetsiz konsolda görkeziler. Şonuň üçin Java-da döredijiler seneler we wagtlar bilen işlemek üçin birnäçe sapak berdiler. Birinjisi synpjava.util.Date

Java Sene synpy

Java-da başga bir paketde synp hem barlygy üçin doly adyny berdik java.sql.Date. Bulaşmaň! Bu barada bilmeli ilkinji zadyňyz, senäni 1970-nji ýylyň 1-nji ýanwaryndan bäri geçen millisekuntda saklaýar . Bu senäniň hatda aýratyn ady hem bar - "Unix time". Gaty gyzykly bir ýol, şeýlemi? :) Rememberatda saklamaly ikinji zat: Dateboş konstruktor bilen bir obýekt döredýän bolsaňyz, netije obýektiň döredilen senesi we wagty bolar . StringŞeýle ýumuşyň senäniň formaty üçin kyn boljakdygyny nädip ýazandygymyz ýadyňyzdamy? Synp Dateaňsatlyk bilen çözýär.
public class Main {
   public static void main(String[] args) {

       Date date = new Date();
       System.out.println(date);
   }
}
Bu kody birnäçe gezek işlediň we wagtyň her gezek üýtgejekdigini görersiňiz :) Bu takyk millisekuntda saklanýandygy sebäpli mümkindir: wagtyň iň kiçi birligi, şonuň üçin netijeler şeýle takyk. Başga bir gurluşykçy bar Date: 1970-nji ýylyň 1-nji ýanwaryndan 00: 00-dan talap edilýän senä çenli millisekuntyň takyk sanyny kesgitläp bilersiňiz we dörediler:
public class Main {
   public static void main(String[] args) {

       Date date = new Date(1212121212121L);
       System.out.println(date);
   }
}
Konsol çykyşy:

Fri May 30 08:20:12 MSD 2008
2008-nji ýylyň 30-njy maýynda aldyk. “Juma” hepdäniň gününi aňladýar - “Juma” (Juma), MSD - “Moskwanyň gündiz tygşytlamagy” (Moskwanyň tomus wagty). Millisekunt formatda geçirilýär long, sebäbi olaryň sany köplenç gabat gelmeýär int. Şeýlelik bilen, işimizde haýsy sene amallary gerek bolup biler? Elbetde, iň düşnükli zat deňeşdirme . Bir senäniň beýlekisinden giç ýa-da ir bolandygyny kesgitläň. Bu dürli ýollar bilen edilip bilner. Date.getTime()Mysal üçin, 1970-nji ýylyň 1-nji ýanwarynda ýary gijeden bäri geçen millisekunt sanyny yzyna gaýtaryp berjek. Usulyna jaň edip bilersiňiz . Geliň, diňe iki Sene obýektine jaň edeliň we biri-biri bilen deňeşdireliň:
public class Main {
   public static void main(String[] args) {

       Date date1 = new Date();

       Date date2 = new Date();

       System.out.println((date1.getTime() > date2.getTime())?
               "date1 is later than date2" : "date1 is earlier than date2");
   }
}
Netije:

date1 раньше date2
Emma has amatly usul bar , ýagny synpyň ýörite usullaryny ulanmak Date: before()we after(). equals()Olaryň hemmesi netijäni gaýtaryp berýärler boolean. Usul before(), senämiziň argument hökmünde geçen günümizden has irdigini barlaýar:
public class Main {
   public static void main(String[] args) throws InterruptedException {

       Date date1 = new Date();

       Thread.sleep(2000);//pause the program for 2 seconds
       Date date2 = new Date();

       System.out.println(date1.before(date2));
   }
}
Konsol çykyşy:

true
Usul şuňa meňzeş işleýär after(), senämiziň argument hökmünde geçen günümizden has giçdigini ýa-da ýokdugyny barlaýar:
public class Main {
   public static void main(String[] args) throws InterruptedException {

       Date date1 = new Date();

       Thread.sleep(2000);//pause the program for 2 seconds
       Date date2 = new Date();

       System.out.println(date1.after(date2));
   }
}
Konsol çykyşy:

false
Mysallarymyzda, iki senäniň başgaça bolmagy kepillendirilmegi üçin programmany 2 sekunt uklamaly. Çalt kompýuterlerde döretmegiň arasyndaky wagt date1we date2bir millisekuntdan az bolup biler, bu ýagdaýda iki usul hem gaýdyp before()geler . Emma şeýle ýagdaýda usul gaýdyp geler ! Galyberse-de, her sene üçin 1970-nji ýylyň 1-nji ýanwarynda sagat 00: 00-dan geçen millisekunt sanyny deňeşdirýär. Obýektler diňe millisekunt bilen gabat gelse deň hasap ediler: after()falseequals()true
public static void main(String[] args) {

   Date date1 = new Date();
   Date date2 = new Date();

   System.out.println(date1.getTime());
   System.out.println(date2.getTime());

   System.out.println(date1.equals(date2));
}
Ine, başga bir üns bermeli zadyňyz. “Oracle” web sahypasynda synp üçin resminamalary açsaňyz , onuň usullarynyň we konstruktorlarynyň köpüsiniň (“könelişen”) Datekesgitlenendigini görersiňiz . DeprecatedIne, serediň: Synp senesi Ine, Java döredijileriniň özleri köne synplaryň bölekleri barada näme diýýärler: “@Deprecated bilen bellik edilen programma elementi, programmistleriň adatça howply ýa-da şonuň üçin ulanmagy gadagan edýän bir zat. has gowy alternatiwa bar. ” Bu, bu usullary asla ulanyp bolmaýandygyny aňlatmaýar. Date.getHours()Mundan başga-da, özüňizi kodlary IDEA-da ulanyp görmäge synanyşsaňyz, bu has ähtimal işlär. Geliň , obýektden sagat sanyny yzyna gaýtarýan köne usuly alalyň Date.
public static void main(String[] args) {

   Date date1 = new Date();

   System.out.println(date1.getHours());

}
Kody işleden wagtyňyz, meselem, wagt 14:21 bolsa, 14-nji belgini görkezer. Görşüňiz ýaly, könelen usul kesildi, ýöne gaty gowy işleýär. Bu usullar, eýýäm ulanylan ýazylan bir topar kody bozmazlyk üçin düýbünden aýrylmady. Theseagny, bu usullar “bozulmaýar” ýa-da “aýrylmaýar”, has amatly alternatiwanyň bolmagy sebäpli ulanmak maslahat berilmeýär. .Eri gelende aýtsak, bu hakda resminamalarda dogry ýazylýar: Wagtynda nädip ýitmeli däl - Sene wagty we senenama - 2Sene synpynyň usullarynyň köpüsi kämilleşdirilen, giňeldilen görnüşine - synpa geçirildi Calendar. Biz ony hasam tanarys :)

Java senenama

Java 1.1 täze synp hödürledi - Calendar. Java-da hurma bilen işlemegi öňküsinden birneme aňsatlaşdyrdy. CalendarBiziň bilen işleşjek synpymyzyň ýeke-täk durmuşa geçirilmegi synpdyr GregorianCalendar(bu dünýäniň köp ýurtlarynyň ýaşaýan Gregorian senenamasyny durmuşa geçirýär). Esasy amatlylygy, hurma bilen has amatly formatda işlemegidir. Mysal üçin, edip biler:
  • Häzirki senä bir aý ýa-da gün goşuň
  • Yearylyň böküş ýylydygyny ýa-da ýokdugyny barlaň;
  • Aýry-aýry sene komponentlerini alyň (mysal üçin, aý belgisini tutuş seneden alyň)
  • Şeýle hem, içinde gaty amatly yzygiderli ulgam döredildi (aşakda köpüsini göreris).
Synpyň başga bir möhüm tapawudy Calendar, bu hemişelik durmuşa geçirilýär Calendar.Era: senäni miladydan öňki döwre (“Mesihiň öň ýanynda” - Mesihiň dogulmazyndan ozal, ýagny “biziň döwrümizden”) ýa-da AC (“Mesihden soň” - “) kesgitläp bilersiňiz. biziň döwrümiz "). Bularyň hemmesine mysallar bilen seredeliň. Geliň, 2017-nji ýylyň 25-nji ýanwary senesi bilen bir senenama döredeliň:
public static void main(String[] args) {

  Calendar calendar = new GregorianCalendar(2017, 0 , 25);
}
Synpdaky aýlar Calendar(bolşy ýaly Date) noldan başlaýar, şonuň üçin 0 belgisini ikinji argument hökmünde geçirdik. Bir synp bilen işlän wagtyňyz esasy zat, bu senenama däl-de, aýratyn senä Calendardüşünmekdir . Sene, belli bir döwri görkezýän sanlaryň hatarydyr. Senenama senesi bilen köp zatlary edip bilýän tutuş enjamdyr :) Senenama obýektini konsola çykarjak bolsaň, muny has aýdyň görüp bolýar: Çykyş: Wagtynda nädip ýitmeli däl - Sene wagty we senenama - 3

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=2017,MONTH=0,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=25,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Näçe maglumatyň bardygyny görüň! Senenamada adaty senäniň ýok bir topar häsiýeti bar we olaryň hemmesi konsola çykýar ( toString()synpdaky usul şeýle işleýär Calendar). Işleýän wagtyňyz, diňe senenamadan ýönekeý senäni almaly bolarsyňyz. obýekt Date- bu usul bilen edilýär Calendar.getTime()(ady iň mantykly däl, ýöne hiç zat edip bolmaýar):
public static void main(String[] args) {

   Calendar calendar = new GregorianCalendar(2017, 0 , 25);
   Date date = calendar.getTime();
   System.out.println(date);
}
Netije:

Wed Jan 25 00:00:00 MSK 2017
Indi senenama adaty senä “ýönekeýleşdirdik”. Geliň dowam edeliň. Aýlaryň san taýdan görkezilmegine goşmaça, Calendarsynpda yzygiderlilik ulanylyp bilner. CalendarDowamlylyk , üýtgedilip bilinmeýän bahasy eýýäm kesgitlenen synpyň statiki meýdanlarydyr . Bu opsiýa aslynda has gowudyr, sebäbi koduň okalmagyny ýokarlandyrýar.
public static void main(String[] args) {
   GregorianCalendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
}
Calendar.JANUARY- aýy görkezmek üçin yzygiderli biri. Bu at dakmak opsiýasy bilen hiç kim, meselem, “3” belgisiniň aprel aýydygyny, öwrenişen üçünji aýymyzyň mart aýydygyny ýatdan çykarmaz. Diňe ýazýarsyňyz Calendar.APRIL- we ine şeýle :) Calendarhli senenama meýdanlary (gün, aý, minutlar, sekuntlar we ş.m.) usuly ulanyp aýratynlykda düzülip bilner set(). Bu örän amatly, sebäbi Calendarher bir meýdanyň synpda hemişelik bolmagy we iň soňky kody mümkin boldugyça ýönekeý görüner. Mysal üçin, öňki mysalda bir senäni döretdik, ýöne häzirki wagtyny kesgitlemedik. Wagty 19:42:12 belläliň
public static void main(String[] args) {
   Calendar calendar = new GregorianCalendar();
   calendar.set(Calendar.YEAR, 2017);
   calendar.set(Calendar.MONTH, 0);
   calendar.set(Calendar.DAY_OF_MONTH, 25);
   calendar.set(Calendar.HOUR_OF_DAY, 19);
   calendar.set(Calendar.MINUTE, 42);
   calendar.set(Calendar.SECOND, 12);

   System.out.println(calendar.getTime());
}
Netije:

Wed Jan 25 19:42:12 MSK 2017
Usuly diýýäris set(), oňa hemişelik geçýäris (üýtgetmek isleýän meýdanymyza baglylykda) we bu ugur üçin täze baha. Görnüşi ýaly, bu usul set()bir meýdan üçin däl-de, köp meýdan üçin bahany kesgitläp bilýän “super-setter” görnüşidir :) Bir klasa baha goşmak we aýyrmak, Calendarulanyp amala aşyrylýar add(). Üýtgetmek isleýän meýdanyňyza we san - häzirki bahadan näçeräk goşmak / aýyrmak isleýändigiňizi görkezmeli. Mysal üçin, döreden senämizi 2 aý mundan ozal belläliň:
public static void main(String[] args) {
   Calendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
   calendar.set(Calendar.HOUR, 19);
   calendar.set(Calendar.MINUTE, 42);
   calendar.set(Calendar.SECOND, 12);

   calendar.add(Calendar.MONTH, -2);//to subtract a value - a negative number must be passed to the method
   System.out.println(calendar.getTime());
}
Netije:

Fri Nov 25 19:42:12 MSK 2016
Gowy! Sene 2 aý mundan ozal belledik. Netijede, diňe bir aý däl, eýsem ýyl hem üýtgedi, 2017-nji ýyldan 2016-njy ýyla çenli. Sene göçürilende şu ýylyň hasaplamasy, elbetde, awtomatiki usulda amala aşyrylýar we el bilen gözegçilik edilmeli däl. Someöne haýsydyr bir maksat bilen bu gylyk-häsiýeti öçürmeli bolsaňyz, edip bilersiňiz. Specialörite usul roll()beýleki gymmatlyklara täsir etmezden bahalary goşup we aýryp biler. Mysal üçin, şuňa meňzeş:
public static void main(String[] args) {
   Calendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
   calendar.set(Calendar.HOUR, 10);
   calendar.set(Calendar.MINUTE, 42);
   calendar.set(Calendar.SECOND, 12);

   calendar.roll(Calendar.MONTH, -2);
   System.out.println(calendar.getTime());
}
Öňki mysaldaky ýaly etdik - häzirki seneden 2 aý aýyrdyk. Nowöne indi kod başgaça işledi: aý ýanwar-noýabr aýlarynda üýtgedi, ýöne ýyl 2017-nji ýyldaky ýaly galdy! Netije:

Sat Nov 25 10:42:12 MSK 2017
Mundan başga-da. Aboveokarda aýdyşymyz ýaly, obýektiň ähli meýdanlaryny Calendaraýratyn alyp bolýar. Usul munuň üçin jogapkärdir get():
public static void main(String[] args) {
   GregorianCalendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
   calendar.set(Calendar.HOUR, 10);
   calendar.set(Calendar.MINUTE, 42);
   calendar.set(Calendar.SECOND, 12);

   System.out.println("Year: " + calendar.get(Calendar.YEAR));
   System.out.println("Month: " + calendar.get(Calendar.MONTH));
   System.out.println("Number of the week in the month: " + calendar.get(Calendar.WEEK_OF_MONTH));// serial number of the week in the month

   System.out.println("Number: " + calendar.get(Calendar.DAY_OF_MONTH));

   System.out.println("Watch: " + calendar.get(Calendar.HOUR));
   System.out.println("Minutes: " + calendar.get(Calendar.MINUTE));
   System.out.println("Seconds: " + calendar.get(Calendar.SECOND));
   System.out.println("Milliseconds: " + calendar.get(Calendar.MILLISECOND));

}
Netije:

Год: 2017 
Месяц: 0 
Порядковый номер недели в месяце: 4 
Число: 25 
Часы: 10 
Минуты: 42 
Секунды: 12 
Миллисекунды: 0
.Agny, synpda “super-setter” -den başga-da Calendar“super-getter” hem bar :) Anotherene bir gyzykly zat, elbetde, döwürler bilen işlemek. “Miladydan öňki” senesini döretmek üçin meýdançany ulanmaly Calendar.Era Mysal üçin, Gannibalyň Rim goşunyny ýeňen Kanna söweşini görkezýän senäni döredeliň. Bu waka miladydan öňki 216-njy ýylyň 2-nji awgustynda bolup geçdi. e.:.:
public static void main(String[] args) {
   GregorianCalendar cannes = new GregorianCalendar(216, Calendar.AUGUST, 2);
   cannes.set(Calendar.ERA, GregorianCalendar.BC);

   DateFormat df = new SimpleDateFormat("dd MMM yyy GG");
   System.out.println(df.format(cannes.getTime()));
}
SimpleDateFormatBu ýerde senäni bize has düşnükli görnüşde görkezmek üçin synpy ulanýardyk (“GG” harplary döwri görkezmek üçin jogapkärdir). Netije:

02 авг 216 до н.э.
Synpda Calendarbaşga-da köp usul we yzygiderlilik bar , olar hakda resminamalarda okaň:

Setiri senä öwürmek

Setiri senä öwürmek üçin Java kömekçi synpyny - SimpleDateFormat ulanyp bilersiňiz . Bu senäni kesgitlän formata öwürmek üçin zerur synp. Öz gezeginde “DateFormat”Wagtynda nädip ýitmeli däl - Sene wagty we senenama - 5 -a gaty meňzeýär . Ikisiniň arasyndaky ýeke-täk tapawut, “SimpleDateFormat” -y formatirlemek (senäni bir setire öwürmek) we setiri ýerli habarly senä bölmek üçin ulanyp bolýar, “DateFormat” bolsa bir sebiti goldamaýar. Mundan başga-da, “DateFormat” seneleri formatlamak we derňemek üçin esasy goldaw berýän abstrakt synpdyr, “SimpleDateFormat” bolsa “DateFormat” synpyny giňeldýän anyk synpdyr. “SimpleDateFormat” obýektini döretmegiň we Sene formatlamagyň mysaly şu:
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(1212121212121L);

System.out.println(formatter.format(date));
Aboveokardaky mysalda "yyyy-MM-dd HH: mm: ss" nagşyny ulandyk:
  • Yearyl üçin 4 san (yyyy);
  • Aý üçin 2 san (MM);
  • Gün üçin 2 san (dd);
  • 24 sagatlyk formatda 2 san (HH);
  • Minut üçin 2 san (mm);
  • Sekunt üçin 2 san.
Aýralyk bellikleri we nagyş nyşanlarynyň tertibi saklanýar. Konsol çykyşy:
2008-05-30 08:20:12
“SimpleDateFormat” synpy üçin şablon harplary gaty köp . Aljyraňňy bolmaz ýaly, olary bir stolda ýygnadyk:
Nyşan Düşündiriş Mysal
G. döwür (iňlis dilinde lokalizasiýa - AD we BC) AD
y ýyl (4 sanly san) 2020
yy ýyl (soňky 2 san) 20
yyyyy ýyl (4 sanly san) 2020
M. aý sany (öňdebaryjy nollar bolmazdan) 8
MM aý sany (aý sany <10 bolsa öňdebaryjy nollar bilen) 04
MMM üç harply aý gysgaltmasy (lokalizasiýa görä) .An
MMMM doly aýyň ady Iýun
w ýylyň hepdesi (öňdebaryjy nollar bolmazdan) 4
ww ýylyň hepdesi (öňdebaryjy nollar bilen) 04
W. aýda hepde (öňdebaryjy nollar bolmazdan) 3
WW aýda hepde (öňdebaryjy nol bilen) 03
D. ýylyň güni 67
d aýyň güni (öňdebaryjy nollar bolmazdan) 9
dd aýyň güni (öňdebaryjy nollar bilen) 09
F. aýyň hepdäniň güni (öňdebaryjy nol bolmazdan) 9
FF aýyň hepdäniň güni (öňdebaryjy nollar bilen) 09
E. hepdäniň güni (gysgaltma) W.
EEEE hepdäniň güni (doly) Juma
u hepdäniň sany (öňdebaryjy nollar bolmazdan) 5
uu hepdäniň gününiň sany (öňdebaryjy nollar bilen) 05
a AM / PM marker A.M.
H. öňdebaryjy nollar bolmazdan 24 sagat formatda 6
HH öňdebaryjy nol bilen 24 sagat formatda 06
k 24 sagatlyk formatda sagat sany 18
K. 12 sagat formatda sagat sany 6
sag öňdebaryjy nol bolmazdan 12 sagatlyk wagt 6
sag öňdebaryjy nol bilen 12 sagatlyk formatda wagt 06
m öňdebaryjy nol bolmazdan birnäçe minut 32
mm öňdebaryjy nol bilen minutlar 32
s öňdebaryjy nol bolmazdan sekunt on bir
ss öňdebaryjy nol bilen sekunt on bir
S. millisekunt 297
z Sagat guşaklygy EET
Z. wagt zolagy RFC 822 formatda 300
Nusga nyşanlarynyň kombinasiýalaryna mysallar:
Mysal Mysal
dd-MM-yyyy 01-11-2020
yyyy-MM-dd 2019-10-01
HH: mm: ss.SSS 23: 59.59.999
yyyy-MM-dd HH: mm: ss 2018-11-30 03:09:02
yyyy-MM-dd HH: mm: ss.SSS 2016-03-01 01: 20: 47.999
yyyy-MM-dd HH: mm: ss.SSS Z. 2013-13-13 23: 59: 59.999 +0100
Formaty bilen azajyk ýalňyşlyk goýberseňiz, java.text.ParseException-yň eýesi bolup bilersiňiz we bu aýratyn bir ýakymly üstünlik däl. SimpleDateFormat- a gysga gezelenç gutardy - geliň şu güne çenli java setiriniň terjimesine gaýdyp geleliň . “SimpleDateFormat” bize şeýle mümkinçilikleri berýär we bu prosesi ädimme-ädim geçeris.
  1. Sene bellemeli setir dörediň:

    String strDate = "Sat, April 4, 2020";
  2. Setirdäki zatlarymyza gabat gelýän şablon bilen täze “SimpleDateFormat” obýektini döredýäris (ýogsam, analiz edip bilmeris):

    SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMMM d, yyyy", Locale.ENGLISH);

    Görşüňiz ýaly, bu ýerde “Lokal” argumentimiz bar. Eger muny goýmasak, hemişe iňlisçe däl adaty Lokal ulanar.

    Eger ýerli giriş setirine gabat gelmeýän bolsa, onda Mon ýa-da Aprel ýaly dil bilen baglanyşdyrylan simli maglumatlar tanalmaz we nagyş gabat gelse-de java.text.ParseException atar.

    Şeýle-de bolsa, dil aýratynlygy bolmadyk şablony ulanýan bolsak, formatyny görkezmeli däldiris. Mysal üçin - yyyy-MM-dd HH: mm: ss

  3. Formatlaýjy ulanyp, bir senäni döredýäris, bu bolsa öz gezeginde ony giriş setirinden deňeşdirýär:

    try {
      Date date = formatter.parse(strDate);
      System.out.println(date);
    }
    catch (ParseException e) {
      e.printStackTrace();
    }

    Konsol çykyşy:

    
    Sat Apr 04 00:00:00 EEST 2020

    Hmmm ... theöne formaty indi öňki ýaly däl!

    Şol bir formaty döretmek üçin formatlaýjyny ýene ulanýarys:

    System.out.println(formatter.format(date));

    Konsol çykyşy:

    
    Sat, April 4, 2020

SimpleDateFormat we senenama

“SimpleDateFormat” soňraky ulanmak üçin döreden ähli Sene we senenama obýektleriňizi formatlamaga mümkinçilik berýär. Döwürler bilen işlemek ýaly gyzykly bir meselä seredeliň. “BC” senesini döretmek üçin “Calendar.Era” meýdançasyny ulanmaly. Mysal üçin, Gannibalyň Rim goşunyny ýeňen Kanna söweşini görkezýän senäni döredeliň. Bu waka miladydan öňki 216-njy ýylyň 2-nji awgustynda bolup geçdi. e.:.:
public static void main(String[] args) {
   GregorianCalendar cannes = new GregorianCalendar(216, Calendar.AUGUST, 2);
   cannes.set(Calendar.ERA, GregorianCalendar.BC);

   DateFormat df = new SimpleDateFormat("dd MMM yyy GG");
   System.out.println(df.format(cannes.getTime()));
}
Bu ýerde senäni bize has düşnükli görnüşde görkezmek üçin “SimpleDateFormat” synpyny ulandyk (ýokarda görkezilişi ýaly, “GG” harplary döwri görkezmek üçin jogapkärdir). Netije:

02 авг 216 до н.э.

Java senesi formaty

Ine, başga bir waka. Bu sene formatynyň bize laýyk gelmeýändigini kabul edeliň:

Sat Nov 25 10:42:12 MSK 2017
Ine, şu ýerde. Java senesi görnüşinde mümkinçiliklerimizi ulanyp, ony kynçylyksyz özüňiz üýtgedip bilersiňiz:
public static void main(String[] args) {

   SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, d MMMM yyyy");
   Calendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
   calendar.set(Calendar.HOUR, 10);
   calendar.set(Calendar.MINUTE, 42);
   calendar.set(Calendar.SECOND, 12);

   calendar.roll(Calendar.MONTH, -2);
   System.out.println(dateFormat.format(calendar.getTime()));
}
Netije:

суббота, 25 Ноябрь 2017
Has gowy, şeýlemi? :)
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION