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.

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

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

FormatKeteranganContoh
dHari, 1-31d/MM/yyyy = 2/05/2018
ddHari, 01-31dd/MM/yyyy = 02/05/2018
dddHari, singkatanddd, MM yyyy = Wed, 05 2018
ddddHari, kepanjangandddd, MM yyyy = Wednesday, 05 2018
MBulan, 1-12dd/M/yyyy = 2/6/2018
MMBulan, 01-12dd/MM/yyyy = 02/06/2018
MMMBulan, singkatandd MMM yyyy = 02 Jun 2018
MMMMBulan, kepanjangandd MMMM yyyy = 02, June 2018
sDetik, 0-59hh:mm:s = 02:45:1
ssDetik, 00-59hh:mm:ss = 02:45:01
mMenit, 0-59 MenithhⓂ️ss = 02:6:17
mmMenit, 00-59 Menithh:mm:ss = 02:06:17
hJam, 1-12 (format 12 jam)h:mm:ss = 5:32:16
hhJam, 01-12 (format 12 jam)hh:mm:ss = 05:32:16
HJam, 1-24 (format 24 jam)H:mm:ss = 6:32:16
HHJam, 01-2 (format 24 jam)HH:mm:ss = 17:32:16
tSatu karakter designator AM/PMhh:mm:ss t = 2:11:42 P –> PM
ttDesignator AM/PMhh:mm:ss tt = 2:11:42 PM
:Pemisah waktu5:32:16
/Pemisah tanggal21/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.

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.