16+ Tips Manipulasi DateTime pada C#/VB.NET

Manipulasi DateTime merupakan hal yang wajib diketahui oleh programmer, khususnya C# dan VB.NET. DateTime (struktur) digunakan untuk menyimpan informasi berupa tanggal dan waktu. Manipulasi DateTime sangat penting khususnya dalam aplikasi kasir, sewa, rental, dan lain-lain. Struktur DateTime memudahkan programmer untuk mengolah tanggal dan waktu, misalnya mencari selisih tanggal, konversi kalender, dan operasi penanggalan lainnya.

Manipulasi DateTime

DateTime, TimeSpan, dan CultureInfo

Sebelum memulai membahas manipulasi DateTime, sebaiknya kita bahas terlebih dahulu mengenai DateTimeTimeSpan, dan CultureInfo.

  • DateTime, merupakan struktur yang menampung data  berupa tanggal dan waktu.
  • TimeSpan, merupakan struktur yang menampung interval waktu.
  • CultureInfo, merupakan kelas yang menyediakan informasi mengenai suatu kultur (formatting, bahasa, dan lain-lain).

Pada aplikasi uji coba kali ini, penulis menggunakan kultur English US. Untuk mengetahui kultur yang aktif pada komputer Anda, buka Region & language settings pada Control Panel. Pengatuan kultur ini berpengaruh pada aplikasi yang akan dibuat, karena format yang dihasilkan akan mengikuti kultur yang aktif pada sistem.

Selain mengubah pengaturan kultur dari sistem melalui Control Panel, pengaturan kultur juga dapat dilakukan dari aplikasi dengan cara mengubah kultur internal aplikasi dalam lingkup thread.

CultureInfo ci = new CultureInfo("id-ID");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

Kebanyakan format sudah ada pada bawaan Windows, programmer hanya perlu mengatur kultur agar sesuai. Misalnya format tanggal bulan/tanggal/tahun pada format EN-US dapat dengan mudah diubah menjadi kultur Indonesia yaitu tanggal/bulan/tahun menggunakan kode di atas. Biasanya format tanggal dan waktu tidak perlu kustom, cukup mengubah kultur saja.

Demo Manipulasi DateTime
Demo Manipulasi DateTime

Format Standar DateTime

FormatKeteranganContoh
dTanggal singkat26/05/2018
DTanggal lengkapSabtu, 26 Mei 2018
fTanggal dan waktu singkatSabtu, 26 Mei 2018 15.30
FTanggal dan waktu lengkapSabtu, 26 Mei 2018 15.30.23
gTanggal dan waktu umum singkat26/05/2018 15.30
GTanggal dan waktu umum lengkap26/05/2018 15.30.23
tWaktu singkat15.30
TWaktu lengkap15.30.23
mTanggal dan bulan26 Mei
yBulan dan tahunMei 2018

Format pada tabel di atas digunakan untuk memanggil fungsi ToString(string format) pada objek DateTime. Format di atas digunakan seperti apa adanya, tidak ada kustomisasi, hanya satu karakter sebagai parameter pada fungsi ToString(string format). Format standar ini sangat cocok untuk menampilkan tanggal dan waktu sesuai dengan kultur sistem dengan cepat.

Kode berikut adalah contoh untuk menggunakan format sesuai tabel di atas.

var tanggal = DateTime.Now; // pakai tanggal dan waktu saat ini
Console.WriteLine(tanggal.ToString("T"));

Format Kustom DateTime

Format Keterangan Contoh
d
dd
ddd
dddd
Hari, 1-31
Hari, 01-31
Hari, singkatan
Hari, kepanjangan
d/MM/yyyy = 2/05/2018
dd/MM/yyyy = 02/05/2018
ddd, MM yyyy = Wed, 05 2018
dddd, MM yyyy = Wednesday, 05 2018
M
MM
MMM
MMMM
Bulan, 1-12
Bulan, 01-12
Bulan, singkatan
Bulan, kepanjangan
dd/M/yyyy = 2/6/2018
dd/MM/yyyy = 02/06/2018
dd MMM yyyy = 02 Jun 2018
dd MMMM yyyy = 02, June 2018
s
ss
Detik, 0-59
Detik, 00-59
hh:mm:s = 02:45:1
hh:mm:ss = 02:45:01
m
mm
Menit, 0-59 Menit, 00-59 hh:m:ss = 02:6:17
hh:mm:ss = 02:06:17
h
hh
H
HH
Jam, 1-12 (format 12 jam)
Jam, 01-12 (format 12 jam)
Jam, 1-24 (format 24 jam)
Jam, 01-2 (format 24 jam)
h:mm:ss = 5:32:16
hh:mm:ss = 05:32:16
H:mm:ss = 6:32:16
HH:mm:ss = 17:32:16
t
tt
:
/
Satu karakter designator AM/PM
Designator AM/PM
Pemisah waktu
Pemisah tanggal
hh:mm:ss t = 2:11:42 P –> PM
hh:mm:ss tt = 2:11:42 PM
5:32:16
21/05/2000

Berbagai format di atas dapat dikombinasikan untuk menghasilkan format yang diinginkan. Misalkan: dddd, dd/MM/yyyy hh:mm:ss tt akan menghasilkan Saturday, 26/05/2018 15:56:12 PM pada saat artikel ini ditulis.

Download

Source code: https://github.com/Kodesiana/Post-Samples/tree/master/DateTime-Formatting

Referensi

  1. Microsoft. 2017. Standard Date and Time Format Strings (https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings). Diakses 25 Mei 2018.
  2. Microsoft. 2017. Custom Date and Time Format Strings (https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings). Diakses 25 Mei 2018.
  3. Microsoft. 2018. CultureInfo Class (https://docs.microsoft.com/id-id/dotnet/api/system.globalization.cultureinfo). Diakses 26 Mei 2018.
  4. Microsoft. 2018. DateTime Struct (https://docs.microsoft.com/id-id/dotnet/api/system.datetime). Diakses 26 Mei 2018.