VB.NET: Bekerja Dengan Date dan Time (Tanggal & Waktu)


Sekian tahun pengalaman Rani bikin aplikasi dengan bahasa apapun hampir selalu terdapat pengolahan data berupa tanggal dan waktu. Lalu bagaimana Date dan Time pada VB.NET?

Membuat Objek DateTime
Dalam VB.NET sendiri ada tipe data yang bernama DateTime. Saat kita mendeklarasikan variable bertipe ini maka nilai default yang dihasilkan adalah 1/1/0001, 12:00 AM.

Dim dt As DateTime
MsgBox(dt.ToShortDateString & " " & dt.ToShortTimeString, , "Message")

Mendapatkan Tanggal dan Waktu Saat Ini
Bagaimana mendapatkan tanggal dan waktu hari ini/saat ini? Caranya menggunakan method Time dan Today.
Berikut ini contoh penggunaan nya:
Dim strTanggal As String = Today
Dim strWaktu As String= Now
MsgBox("Tanggal : " & strTanggal & vbCrLf & _
       "Saat Ini: " & strWaktu, , "Message")


Jika ingin menampilkan waktu saja (tanpa tanggal) berikut contoh nya:
MsgBox("Waktu Saat Ini: " & Now.ToLongTimeString, , "Message")
Format Tanggal dan Waktu
Kita juga dapat memformat waktu dan tanggal dengan format yang sudah ditentukan, kita lihat list nya seperti pada contoh berikut:
 Dim strDateTime As String = String.Empty
strDateTime = strDateTime & "Format G :" & Format(Now, "G") & vbCrLf
strDateTime = strDateTime & "Format D :" & Format(Now, "D") & vbCrLf
strDateTime = strDateTime & "Format d :" & Format(Now, "d") & vbCrLf
strDateTime = strDateTime & "Format T :" & Format(Now, "T") & vbCrLf
strDateTime = strDateTime & "Format t :" & Format(Now, "t") & vbCrLf
strDateTime = strDateTime & "Format F :" & Format(Now, "F") & vbCrLf
strDateTime = strDateTime & "Format f :" & Format(Now, "f") & vbCrLf
strDateTime = strDateTime & "Format M :" & Format(Now, "M") & vbCrLf
strDateTime = strDateTime & "Format m :" & Format(Now, "m") & vbCrLf
strDateTime = strDateTime & "Format R :" & Format(Now, "R") & vbCrLf
strDateTime = strDateTime & "Format r :" & Format(Now, "r") & vbCrLf
strDateTime = strDateTime & "Format s :" & Format(Now, "s") & vbCrLf
strDateTime = strDateTime & "Format U :" & Format(Now, "U") & vbCrLf
strDateTime = strDateTime & "Format u :" & Format(Now, "u") & vbCrLf
strDateTime = strDateTime & "Format Y :" & Format(Now, "Y") & vbCrLf
strDateTime = strDateTime & "Format y :" & Format(Now, "y") & vbCrLf
MsgBox(strDateTime, , "Message")

Pada Visual Basic .NET kita juga bisa membuat format tanggal sendiri dengan menggunakan karakter-karakter sebagai berikut:

KarakterKeterangan
(:)Pemisah waktu jam, menit dan detik. Contoh: 15:32:01
(/)Pemisah tanggal. Contoh: 11/24/2015
(%)Merupakan awalan yang digunakan untuk format yang hanya menggunakan 1 huruf. Contoh: jika format ditulias "d" saja maka hasilnya jadi 11/24/2015 sementara dengan "%d" jadi 24
dUntuk membuat kombinasi format angka tanggal tanpa angka 0 jika tanggal di bawah tanggal 10. Untuk menampilkan hanya angka tanggal saja gunakan "%d"
ddFormat angka tanggal dengan angka 0 di depan tanggal yang di bawah tanggal 10
dddFormat untuk menampilkan nama hari dalam bahasa Inggris. Contoh: Sun, Mon, Tue, dst.
ddddFormat untuk menampilkan nama hari lengkap dalam bahasa Inggris (Contoh: Sunday, Monday, Tuesday, dst).
MUntuk menampilkan angka bulan tanpa diawali 0 untuk bulan dibawah 10. Sama seperti d, jika menggunakan format 1 huruf saja gunakan %M.
MMUntuk menampilkan angka bulan diawali 0 untuk bulan dibawah 10. (Contoh: 01/12/01).
MMMMenampilkan singkatan nama bulan dalam bahasa Inggris (Contoh: Jan, Feb, Mar, dst).
MMMMMenampilkan nama bulan secara lengkap (Contoh: January, February, March, dst).
ggUntuk menampilkan era/periode (Contoh: A.D.).
hMenampilkan angka jam format 12 jam tanpa diawali 0 untuk di bawah jam 10
(Contoh: 1:15:15 PM). Gunakan %h jika menggunakan format 1 huruf.
hhMenampilkan angka jam format 12 jam diawali 0 untuk di bawah jam 10
(Contoh: 01:15:15 PM).
HMenampilkan angka jam format 24 jam tanpa diawali 0 untuk di bawah jam 10
(Contoh: 13:15:15) Gunakan %H jika menggunakan format 1 huruf.
HHMenampilkan angka jam format 24 jam diawali 0 untuk di bawah jam 10 (Contoh: 02:10:15).
mMenampilkan angka menit tanpa diawali 0 untuk angka di bawah 10 (contoh: 12:1:15). Gunakan %m jika menggunakan format 1 huruf.
mmMenampilkan angka menit diawali 0 untuk angka di bawah 10 (contoh: 12:01:15).
sMenampilkan angka detik tanpa diawali 0 untuk angka di bawah 10 (contoh: 12:11:5). Gunakan %s jika menggunakan format 1 huruf.
ssMenampilkan angka detik tanpa diawali 0 untuk angka di bawah 10 (contoh: 12:11:05).
fMenampilkan per sepuluh dari detik, ff per seratus detik, fff perseribu dan seterusnya. Gunakan %f jika hanya menggunakan format 1 huruf.
tPada format 12 jam akan menampilkan A untuk waktu jam 12 malam sampai 11:59 siang. Dan P untuk 12 siang sampau 11:59 malam. Gunakan %t jika hanya menggunakan format 1 huruf.
ttPada format 12 jam akan menampilkan AM untuk waktu jam 12 malam sampai 11:59 siang. Dan PM untuk 12 siang sampau 11:59 malam. Jika diletakan pada format 24 jam maka tidak akan ditampikan.
yMenampilkan tahun dalam 2 digit terakhir tanpa angka 0 untuk angka 0-9. Gunakan %y jika menggunakan format 1 huruf.
yyMenampilkan tahun dalam 2 digit terakhir dengan angka 0 untuk angka 0-9.
yyyMenampilkan tahun 4 digit angka.
yyyyMenampilkan tahun 4 digit angka.
zFormat untuk menampilkan selisih zona waktu yang digunakan tanpa diawali 0 untuk selisih dibawah 10. Gunakan %z untuk format menggunakan 1 huruf. Contoh: +7
zzFormat untuk menampilkan selisih zona waktu yang digunakan diawali 0 untuk selisih dibawah 10. Contoh: +07
zzzFormat untuk menampilkan selisih zona waktu dalam tampilan waktu hh:mm.Contoh: +07:00

Contoh Penggunaan:
Dim strDateTime As String = String.Empty
strDateTime = strDateTime & "Format M/d/yy :" & Format(Now, "M/d/yy") & vbCrLf
strDateTime = strDateTime & "Format d-MMM :" & Format(Now, "d-MMM") & vbCrLf
strDateTime = strDateTime & "Format d-MMMM-yy :" & Format(Now, "d-MMMM-yy") & vbCrLf
strDateTime = strDateTime & "Format d MMMM :" & Format(Now, "d MMMM") & vbCrLf
strDateTime = strDateTime & "Format MMMM yy :" & Format(Now, "MMMM yy") & vbCrLf
strDateTime = strDateTime & "Format hh:mm tt :" & Format(Now, "hh:mm tt") & vbCrLf
strDateTime = strDateTime & "Format h:mm:ss t :" & Format(Now, "h:mm:ss t") & vbCrLf
strDateTime = strDateTime & "Format H:mm :" & Format(Now, "H:mm") & vbCrLf
strDateTime = strDateTime & "Format H:mm:ss :" & Format(Now, "H:mm:ss") & vbCrLf
strDateTime = strDateTime & "Format M/d/yyyy H:mm :" & Format(Now, "M/d/yyyy H:mm")
MsgBox(strDateTime, , "Message")




1/1/0001, 12:00 AM

Click here if you like this article.


Post a Comment

5 Comments

CumuNara said…
bu rani gimana kalo tanggal nya di ambil dari server lalu di tampung pada DateTimePicker/Label/Textbox...(Server SQL 2005 dan Vb NET 2010)...
rani said…
ambil dari database server pake query:
SELECT GETDATE()
CumuNara said…
Sintak lengkapnya gimana bu saya masih baru ne...
yohimato reload said…
field tgl di database formatnya seperti ini 2018-06-07 19:30:50, kemudian kita tampilkan ke gridview kolom terpisah tanggal dan time, koding nya seperti apa ya mbak ? trims
morris said…
Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read. this