JavaRush /Blog Jawa /Random-JV /Carane ora ilang ing wektu - DateTime lan Tanggalan

Carane ora ilang ing wektu - DateTime lan Tanggalan

Diterbitake ing grup
Hello! Dina iki kita bakal miwiti nggarap jinis data anyar sing durung ditemoni sadurunge, yaiku tanggal. Carane ora ilang ing wektu - DateTime lan Tanggalan - 1Aku ana ora perlu kanggo nerangake apa tanggal :) Ing asas, iku cukup bisa kanggo nulis tanggal lan wektu saiki ing Jawa ing senar biasa.
public class Main {
   public static void main(String[] args) {

       String date = "June 11, 2018";
       System.out.println(date);
   }
}
Nanging pendekatan iki duwe akeh kekurangan. Kelas Stringdigawe kanggo nggarap teks, lan nduweni metode sing cocog. Yen kita kudu ngatur tanggal kasebut (umpamane, nambah 2 jam), Stringora bakal bisa digunakake ing kene. Utawa, contone, nampilake tanggal lan wektu saiki ing wektu program dikompilasi menyang console. Iki Stringuga ora bakal mbantu: nalika sampeyan nulis kode lan mbukak, wektu bakal ganti lan sing ora cocog bakal ditampilake ing konsol. Mula, ing Jawa, pangripta nyediakake sawetara kelas kanggo nggarap tanggal lan wektu. Sing pertama yaiku kelasjava.util.Date

Kelas Tanggal Jawa

We menehi jeneng lengkap amarga ana uga kelas ing paket liyane ing Jawa java.sql.Date. Aja bingung! Babagan pisanan sampeyan kudu ngerti babagan iki yaiku nyimpen tanggal ing milidetik sing wis liwati wiwit 1 Januari 1970. Malah ana jeneng sing kapisah kanggo tanggal iki - "Wektu Unix". Cara sing menarik, apa sampeyan ora setuju? :) Ing bab liya kanggo elinga: yen sampeyan nggawe obyek Datekaro konstruktor kosong, asil bakal tanggal lan wektu saiki ing wektu obyek digawe . StringApa sampeyan ngelingi kepiye carane nulis yen tugas kasebut bakal dadi masalah kanggo format tanggal ? Kelas Datengrampungake kanthi gampang.
public class Main {
   public static void main(String[] args) {

       Date date = new Date();
       System.out.println(date);
   }
}
Mbukak kode iki kaping pirang-pirang lan sampeyan bakal weruh carane wektu bakal ngganti saben wektu :) Iki bisa sabenere amarga wis disimpen ing milliseconds: padha unit wektu paling cilik, kang kok asil akurat. Ana konstruktor liyane kanggo Date: sampeyan bisa nemtokake jumlah milidetik sing wis liwati saka 00:00 1 Januari 1970 nganti tanggal sing dibutuhake, lan bakal digawe:
public class Main {
   public static void main(String[] args) {

       Date date = new Date(1212121212121L);
       System.out.println(date);
   }
}
Output konsol:

Fri May 30 08:20:12 MSD 2008
Kita entuk tanggal 30 Mei 2008. "Jum" tegese dina minggu - "Jum'ah" (ana), lan MSD - "Moscow Daylight Saving" (Moscow mangsa panas). Milidetik ditularaké ing format long, amarga nomer sing paling asring ora pas menyang int. Dadi, operasi tanggal apa sing bisa ditindakake ing karya kita? Inggih, sing paling jelas, mesthi, yaiku perbandingan . Nemtokake manawa siji tanggal mengko utawa luwih awal tinimbang liyane. Iki bisa ditindakake kanthi cara sing beda-beda. Contone, sampeyan bisa nelpon metode . Date.getTime(), sing bakal ngasilake jumlah milidetik sing wis liwati wiwit tengah wengi tanggal 1 Januari 1970. Ayo padha nelpon ing rong obyek Tanggal lan mbandhingake karo saben liyane:
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");
   }
}
Kesimpulan:

date1 раньше date2
Nanging ana cara sing luwih trep, yaiku nggunakake metode khusus kelas Date: before(), after()lan equals(). Kabeh padha bali asil ing boolean. Cara kasebut before()mriksa manawa tanggal kita luwih awal tinimbang tanggal sing kita lewati minangka argumen:
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));
   }
}
Output konsol:

true
Cara kasebut bisa digunakake kanthi cara sing padha after(); iku mriksa manawa tanggal kita luwih cepet tinimbang sing kita lewati minangka argumen:
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));
   }
}
Output konsol:

false
Ing conto kita, kita sijine program kanggo turu kanggo 2 detik supaya loro tanggal dijamin beda. Ing komputer cepet, wektu antarane nggawe date1lan date2bisa kurang saka siji milidetik, ing kasus loro lan before()lan after()bakal bali false. Nanging cara equals()ing kahanan kaya mengkono bakal bali true! Sawise kabeh, mbandhingake persis jumlah milidetik sing wis liwati wiwit 00:00 1 Januari 1970 kanggo saben tanggal. Obyek mung bakal dianggep padha yen cocog karo milidetik:
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));
}
Ing kene ana bab liya sing kudu digatekake. Yen sampeyan mbukak dokumentasi kanggo kelas Dateing situs web Oracle, sampeyan bakal weruh manawa akeh metode lan konstruktor wis ditetepake minangka Deprecated("deprecated"). Ing kene, delengen: Tanggal Kelas Mangkene pangandikane para pangripta Jawa dhewe babagan bagean-bagean kelas sing wis ora digunakake: “Elemen program sing dianotasi karo @Deprecated yaiku bab sing ora disenengi dening programer, biasane amarga mbebayani, utawa amarga iku. ana alternatif sing luwih apik." Iki ora ateges cara kasebut ora bisa digunakake. Menapa malih, yen sampeyan dhewe nyoba kanggo mbukak kode nggunakake mau ing IDEA, iku paling kamungkinan bakal bisa. Ayo dadi njupuk contone cara deprecated Date.getHours(), kang ngasilake nomer jam saka obyek Date.
public static void main(String[] args) {

   Date date1 = new Date();

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

}
Yen ing wektu sampeyan mbukak kode, contone, wektu 14:21, bakal nampilake nomer 14. Nalika sampeyan bisa ndeleng, cara deprecated wis nyabrang metu, nanging kerjane cukup apik. Cara-cara kasebut ora dibusak kanthi lengkap, supaya ora ngrusak akeh kode sing wis ditulis nggunakake. Tegese, cara kasebut ora "rusak" utawa "dibusak", mung ora dianjurake kanggo digunakake amarga kasedhiya alternatif sing luwih trep. Miturut cara, iku wis ditulis bab tengen ing dokumentasi: Carane ora ilang ing wektu - DateTime lan Tanggalan - 2Paling cara saka kelas Tanggal wis dipindhah menyang apik, versi lengkap - kelas Calendar. Kita bakal luwih ngerti dheweke :)

Kalender Jawa

Java 1.1 ngenalaken kelas anyar - Calendar. Dheweke nggawe nggarap tanggal ing Jawa luwih gampang tinimbang sadurunge. Siji-sijine implementasine saka kelas Calendarsing bakal ditindakake yaiku kelas GregorianCalendar(iku ngleksanakake kalender Gregorian, miturut sing paling akeh negara ing donya manggon). Penak utamane yaiku bisa nggarap tanggal kanthi format sing luwih trep. Contone, dheweke bisa:
  • Tambah sasi utawa dina menyang tanggal saiki
  • Priksa manawa taun kasebut minangka taun kabisat;
  • Entuk komponen tanggal individu (contone, entuk nomer sasi saka tanggal kabeh)
  • Lan uga, sistem konstanta sing trep banget wis dikembangake ing njero (kita bakal weruh akeh ing ngisor iki).
Bentenane penting liyane saka kelas kasebut Calendaryaiku ngetrapake konstanta Calendar.Era: sampeyan bisa nyetel tanggal menyang jaman SM ("Sadurunge Kristus" - sadurunge lair saka Kristus, yaiku "sadurunge jaman kita") utawa AC ("Sawise Kristus" - " jaman kita"). Ayo ndeleng kabeh iki kanthi conto. Ayo nggawe tanggalan kanthi tanggal 25 Januari 2017:
public static void main(String[] args) {

  Calendar calendar = new GregorianCalendar(2017, 0 , 25);
}
Sasi ing kelas Calendar(kaya ing Date, dening cara) miwiti saka nul, supaya kita liwati nomer 0 minangka pitakonan kapindho. Wangsulan: Bab ingkang utama nalika nggarap kelas Calendariku kanggo ngerti sing iki tanggalan , lan ora tanggal kapisah. Carane ora ilang ing wektu - DateTime lan Tanggalan - 3Tanggal mung minangka seri nomer sing nuduhake wektu tartamtu. Lan tanggalan minangka piranti kabeh sing sampeyan bisa nindakake akeh perkara karo tanggal :) Iki bisa dideleng kanthi jelas yen sampeyan nyoba ngasilake obyek Tanggalan menyang konsol: Output:

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=?]
Waca carane akeh informasi ana! Tanggalan wis Bunch saka sifat sing tanggal biasa ora duwe, lan kabeh iku output kanggo console (iki carane cara toString()ing kelas dianggo Calendar). Yen, nalika nggarap, sampeyan mung kudu njaluk tanggal prasaja saka tanggalan, i.e. obyek Date- iki rampung nggunakake cara Calendar.getTime()(jeneng ora paling logis, nanging ora bisa rampung):
public static void main(String[] args) {

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

Wed Jan 25 00:00:00 MSK 2017
Saiki kita wis "nyederhanakake" tanggalan menyang tanggal biasa. Ayo nerusake. Saliyane simbol angka kanggo sasi, Calendarkonstanta bisa digunakake ing kelas. Konstanta minangka kolom statis saka kelas Calendarkanthi nilai sing wis disetel sing ora bisa diganti. Pilihan iki bener luwih apik, awit iku mbenakake readability saka kode.
public static void main(String[] args) {
   GregorianCalendar calendar = new GregorianCalendar(2017, Calendar.JANUARY , 25);
}
Calendar.JANUARY- salah siji saka konstanta kanggo nuduhake sasi. Kanthi opsi penamaan iki, ora ana sing bakal lali, umpamane, yen nomer "3" tegese April, lan dudu sasi katelu sing biasa kita - Maret. Sampeyan mung nulis Calendar.APRIL- lan iku mung :) Kabeh kolom tanggalan (dina, sasi, menit, detik, etc.) bisa disetel individu nggunakake cara set(). Iku trep banget, amarga Calendarsaben lapangan duwe pancet dhewe ing kelas, lan kode final bakal katon minangka prasaja sabisa. Contone, ing conto sadurunge, kita nggawe tanggal, nanging ora nyetel wektu saiki. Ayo nyetel wektu dadi 19:42:12
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());
}
Kesimpulan:

Wed Jan 25 19:42:12 MSK 2017
We nelpon cara set(), pass pancet menyang (gumantung ing lapangan kita arep kanggo ngganti) lan Nilai anyar kanggo lapangan iki. Pranyata cara kasebut set()minangka "super-setter" sing bisa nyetel nilai ora kanggo siji lapangan, nanging kanggo akeh lapangan :) Nambah lan nyuda nilai ing kelas Calendarditindakake kanthi nggunakake add(). Sampeyan kudu pass menyang lapangan sing pengin diganti, lan nomer - persis pinten sampeyan pengin nambah / nyuda saka Nilai saiki. Contone, ayo nyetel tanggal sing digawe maneh 2 wulan kepungkur:
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());
}
Kesimpulan:

Fri Nov 25 19:42:12 MSK 2016
apik tenan! Kita wis nyetel tanggal bali menyang 2 sasi kepungkur. Akibaté, ora mung sasi, nanging uga taun wis diganti, saka 2017 kanggo 2016. Pitungan taun saiki nalika obah tanggal, mesthi, dileksanakake kanthi otomatis lan ora perlu kanggo kontrol manual. Nanging yen kanggo sawetara waé sampeyan kudu mateni prilaku iki, sampeyan bisa nindakake iku. Cara khusus roll()bisa nambah lan nyuda nilai tanpa mengaruhi nilai liyane. Contone, kaya iki:
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());
}
Kita nindakake persis kaya ing conto sadurunge - kita nyuda 2 wulan saka tanggal saiki. Nanging saiki kode kasebut beda-beda: sasi diganti saka Januari nganti November, nanging taun tetep padha karo 2017! Kesimpulan:

Sat Nov 25 10:42:12 MSK 2017
Salajengipun. Kaya sing wis kasebut ing ndhuwur, kabeh lapangan obyek Calendarbisa dipikolehi kanthi kapisah. Cara iki tanggung jawab kanggo iki 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));

}
Kesimpulan:

Год: 2017 
Месяц: 0 
Порядковый номер недели в месяце: 4 
Число: 25 
Часы: 10 
Минуты: 42 
Секунды: 12 
Миллисекунды: 0
Sing, saliyane "super-setter" ing kelas Calendarana uga "super-getter" :) Titik menarik liyane, mesthi, nggarap eras. Kanggo nggawe tanggal "BC" sampeyan kudu nggunakake lapangan Calendar.Era Contone, ayo kang nggawe tanggal nuduhake Peperangan Cannae, kang Hannibal ngalahaké tentara Roma. Iki kedadeyan tanggal 2 Agustus 216 SM. 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()));
}
Ing kene kita nggunakake kelas SimpleDateFormatkanggo nampilake tanggal ing format sing luwih dingerteni kanggo kita (huruf "GG" tanggung jawab kanggo nampilake jaman). Kesimpulan:

02 авг 216 до н.э.
CalendarAna akeh cara lan konstanta liyane ing kelas , waca babagan ing dokumentasi:

Ngonversi string menyang Tanggal

Kanggo ngowahi String dadi Tanggal, sampeyan bisa nggunakake kelas helper Java - SimpleDateFormat . Iki kelas sampeyan kudu ngowahi tanggal menyang format sing sampeyan nemtokake. Carane ora ilang ing wektu - DateTime lan Tanggalan - 5Ing siji, iku banget padha DateFormat . Bentenipun mung kacathet antarane loro iku SimpleDateFormat bisa digunakake kanggo format (ngowahi tanggal kanggo string) lan parsing string menyang tanggal lokal-sadar, déné DateFormat ora ndhukung lokal. Kajaba iku, DateFormat minangka kelas abstrak sing nyedhiyakake dhukungan dhasar kanggo format lan parsing tanggal, dene SimpleDateFormat minangka kelas konkrit sing ngluwihi kelas DateFormat. Iki minangka conto nggawe obyek SimpleDateFormat lan format Tanggal katon kaya:
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(1212121212121L);

System.out.println(formatter.format(date));
Ing conto ing ndhuwur kita nggunakake pola "yyyy-MM-dd HH: mm: ss" sing tegese:
  • 4 digit kanggo taun (yyyy);
  • 2 digit kanggo sasi (MM);
  • 2 digit kanggo dina (dd);
  • 2 digit kanggo jam ing format 24 jam (HH);
  • 2 digit kanggo menit (mm);
  • 2 digit kanggo detik (ss).
Tandha pemisahan lan urutan simbol pola dilestarekake. Output konsol:
2008-05-30 08:20:12
Ana cukup akeh huruf cithakan kanggo kelas SimpleDateFormat . Supaya sampeyan ora bingung, kita wis ngumpulake ing tabel:
Simbol Katrangan Tuladha
G era (ing lokalisasi Inggris - AD lan SM) AD
y taun (nomer 4 digit) 2020
yy taun (2 digit pungkasan) 20
yyyy taun (nomer 4 digit) 2020
M nomer sasi (tanpa nol ngarep) 8
MM nomer sasi (karo nol anjog yen nomer sasi < 10) 04
MMM singkatan telung sasi (miturut lokalisasi) Jan
MMMM jeneng sasi lengkap Juni
w minggu ing taun (tanpa nol ngarep) 4
ww minggu ing taun (kanthi nol utama) 04
W minggu ing sasi (tanpa nol ngarep) 3
WW minggu ing sasi (karo nol anjog) 03
D dina taun 67
d dina sasi (tanpa nol ngarep) 9
dd dina sasi (karo nol anjog) 09
F dina minggu ing sasi (tanpa nol) 9
FF dina minggu ing sasi (karo nol anjog) 09
E dina minggu (singkatan) W
EEEE dina minggu (lengkap) Jumuwah
u nomer dina minggu (tanpa nol ngarep) 5
uu nomer dina minggu (karo nol anjog) 05
a tandha AM/PM A.M.
H jam ing format 24 jam tanpa nul anjog 6
HH jam ing format 24-jam karo anjog nul 06
k jumlah jam ing format 24 jam 18
K jumlah jam ing format 12 jam 6
h wektu ing format 12-jam tanpa nul anjog 6
hh wektu ing format 12 jam karo nul anjog 06
m menit tanpa nul anjog 32
mm menit karo nul anjog 32
s detik tanpa nul anjog sewelas
ss detik karo nul anjog sewelas
S milidetik 297
z Zona wektu EET
Z zona wektu ing format RFC 822 300
Tuladha kombinasi karakter pola:
Sampel Tuladha
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 30-11-2018 03:09:02
yyyy-MM-dd HH:mm:ss.SSS 01-03-2016 01:20:47.999
yyyy-MM-dd HH:mm:ss.SSS Z 13-13-2013 23:59:59.999 +0100
Yen sampeyan nggawe kesalahan tipis karo format, sampeyan bisa dadi pemilik saka java.text.ParseException, lan iki ora prestasi utamané penake. Inggih, dolan singkat menyang SimpleDateFormat wis rampung - ayo bali menyang terjemahan string java nganti saiki . SimpleDateFormat menehi kita kapabilitas kuwi, lan kita bakal lumaku liwat proses iki langkah dening langkah.
  1. Nggawe baris saka ngendi sampeyan kudu nyetel tanggal:

    String strDate = "Sat, April 4, 2020";
  2. Kita nggawe obyek SimpleDateFormat anyar kanthi cithakan sing cocog karo apa sing ana ing senar (yen ora, kita ora bakal bisa ngurai):

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

    Kaya sing sampeyan ngerteni, kita duwe argumentasi Lokal ing kene. Yen kita ngilangi, iku bakal nggunakake Locale standar, kang ora tansah Inggris.

    Yen lokal ora cocog karo senar input, banjur data string kaiket basa, kaya kita Mon utawa April , ora bakal dikenali lan bakal uncalan java.text.ParseException, sanajan pola cocog.

    Nanging, kita ora kudu nemtokake format yen kita nggunakake cithakan sing ora spesifik basa. Minangka conto - yyyy-MM-dd HH:mm:ss

  3. Kita nggawe tanggal nggunakake formatter, sing banjur ngurai saka string input:

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

    Output konsol:

    
    Sat Apr 04 00:00:00 EEST 2020

    Hmmm... Nanging formate wis ora padha!

    Kanggo nggawe format sing padha, kita nggunakake formatter maneh:

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

    Output konsol:

    
    Sat, April 4, 2020

SimpleDateFormat lan Tanggalan

SimpleDateFormat ngidini sampeyan ngowahi format kabeh obyek Tanggal lan Tanggalan sing digawe kanggo digunakake mengko. Ayo nimbang titik sing menarik kaya nggarap jaman. Kanggo nggawe tanggal "SM", sampeyan kudu nggunakake kolom Calendar.Era Contone, ayo nggawe tanggal sing nuduhake Peperangan Cannae, ing ngendi Hannibal ngalahake tentara Roma. Iki kedadeyan tanggal 2 Agustus 216 SM. 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()));
}
Ing kene kita nggunakake kelas SimpleDateFormat kanggo nampilake tanggal ing format sing luwih dingerteni kanggo kita (kaya sing kasebut ing ndhuwur, huruf "GG" tanggung jawab kanggo nampilake jaman). Kesimpulan:

02 авг 216 до н.э.

Format Tanggal Jawa

Iki kasus liyane. Ayo nganggep manawa format tanggal iki ora cocog karo kita:

Sat Nov 25 10:42:12 MSK 2017
Dadi ing kene. Nggunakake kemampuan kita ing format tanggal java, sampeyan bisa ngganti menyang dhewe tanpa akeh kangelan:
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()));
}
Kesimpulan:

суббота, 25 Ноябрь 2017
Luwih apik, ta? :)
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION