unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Date & Time

Date & Time #

DateTime adalah kelas di dalam Dart yang digunakan untuk bekerja dengan tanggal dan waktu. Kelas ini menyediakan berbagai fungsi dan properti untuk memanipulasi dan memformat tanggal serta waktu. Memahami cara kerja DateTime dalam Dart sangat penting untuk pengembangan aplikasi yang melibatkan pengolahan tanggal dan waktu, seperti aplikasi kalender, pengingat, atau fitur-fitur terkait waktu lainnya.

Membuat Objek DateTime #

Ada beberapa cara untuk membuat objek DateTime di Dart:

Menggunakan Constructor Default #

Anda dapat membuat objek DateTime dengan tanggal dan waktu yang spesifik menggunakan constructor default. Constructor ini membutuhkan tahun, bulan, dan hari sebagai parameter minimum, tetapi Anda juga dapat menentukan jam, menit, detik, dan milidetik.

Contoh:

DateTime tanggal = DateTime(2024, 8, 24); // 24 Agustus 2024
DateTime waktu = DateTime(2024, 8, 24, 14, 30, 0); // 24 Agustus 2024, pukul 14:30:00

Pada contoh di atas, tanggal adalah objek DateTime yang merepresentasikan tanggal 24 Agustus 2024, sementara waktu merepresentasikan tanggal dan waktu spesifik pada 24 Agustus 2024, pukul 14:30:00.

Menggunakan Constructor DateTime.now() #

Anda dapat membuat objek DateTime yang merepresentasikan tanggal dan waktu saat ini (current date and time) menggunakan constructor DateTime.now().

Contoh:

DateTime sekarang = DateTime.now();
print(sekarang); // Output: Waktu saat ini, misalnya 2024-08-24 14:45:00.000

Pada contoh di atas, sekarang adalah objek DateTime yang berisi tanggal dan waktu saat ini.

Menggunakan Constructor DateTime.utc() #

DateTime.utc() digunakan untuk membuat objek DateTime dalam waktu universal (UTC). Formatnya sama dengan constructor default, tetapi waktu yang disimpan adalah waktu UTC.

Contoh:

DateTime waktuUtc = DateTime.utc(2024, 8, 24, 14, 30, 0);
print(waktuUtc); // Output: 2024-08-24 14:30:00.000Z

Pada contoh di atas, waktuUtc adalah objek DateTime yang merepresentasikan tanggal dan waktu dalam UTC.

Menggunakan Constructor DateTime.parse() #

DateTime.parse() digunakan untuk membuat objek DateTime dari string yang berisi tanggal dan waktu dalam format ISO 8601 atau format lain yang valid.

Contoh:

DateTime parsedDate = DateTime.parse('2024-08-24');
DateTime parsedDateTime = DateTime.parse('2024-08-24T14:30:00');

Pada contoh di atas, parsedDate merepresentasikan tanggal 24 Agustus 2024, dan parsedDateTime merepresentasikan tanggal 24 Agustus 2024, pukul 14:30:00.

Menggunakan DateTime.fromMillisecondsSinceEpoch() #

Anda juga bisa membuat objek DateTime menggunakan jumlah milidetik sejak epoch (1 Januari 1970, 00:00:00 UTC).

Contoh:

DateTime dateFromEpoch = DateTime.fromMillisecondsSinceEpoch(1629817200000);
print(dateFromEpoch); // Output: 2021-08-24 14:00:00.000

Pada contoh di atas, dateFromEpoch merepresentasikan tanggal dan waktu yang dihitung berdasarkan milidetik sejak epoch.

Mengakses Properti DateTime #

Setelah membuat objek DateTime, Anda bisa mengakses berbagai properti untuk mendapatkan informasi tertentu tentang tanggal atau waktu tersebut.

Properti Umum:

  • year: Mendapatkan tahun dari objek DateTime.
  • month: Mendapatkan bulan (1-12).
  • day: Mendapatkan hari (1-31).
  • hour: Mendapatkan jam (0-23).
  • minute: Mendapatkan menit (0-59).
  • second: Mendapatkan detik (0-59).
  • millisecond: Mendapatkan milidetik (0-999).
  • weekday: Mendapatkan hari dalam seminggu (1 untuk Senin, 7 untuk Minggu).
  • timeZoneOffset: Mendapatkan perbedaan waktu dari UTC dalam durasi (biasanya dalam jam dan menit).
  • isUtc: Mengecek apakah objek DateTime berada dalam waktu UTC.

Contoh:

DateTime tanggal = DateTime(2024, 8, 24, 14, 30, 0);

print('Tahun: ${tanggal.year}');
print('Bulan: ${tanggal.month}');
print('Hari: ${tanggal.day}');
print('Jam: ${tanggal.hour}');
print('Menit: ${tanggal.minute}');
print('Detik: ${tanggal.second}');
print('Hari dalam seminggu: ${tanggal.weekday}');
print('Zona waktu: ${tanggal.timeZoneOffset}');

Manipulasi DateTime #

Dart menyediakan metode untuk memanipulasi objek DateTime, seperti menambah atau mengurangi durasi waktu.

Menambahkan atau Mengurangi Durasi #

Anda dapat menggunakan metode add() dan subtract() untuk menambahkan atau mengurangi durasi pada objek DateTime. Durasi ini diwakili oleh objek Duration.

Contoh:

DateTime sekarang = DateTime.now();
DateTime besok = sekarang.add(Duration(days: 1));
DateTime satuJamYangLalu = sekarang.subtract(Duration(hours: 1));

print('Sekarang: $sekarang');
print('Besok: $besok');
print('Satu Jam yang Lalu: $satuJamYangLalu');

Pada contoh di atas, besok adalah waktu satu hari setelah waktu saat ini, dan satuJamYangLalu adalah waktu satu jam sebelum waktu saat ini.

Membandingkan DateTime #

Anda bisa membandingkan dua objek DateTime untuk menentukan mana yang lebih awal atau lebih akhir.

Contoh:

DateTime date1 = DateTime(2024, 8, 24);
DateTime date2 = DateTime(2024, 8, 25);

if (date1.isBefore(date2)) {
  print('Date1 lebih awal dari Date2');
}

if (date2.isAfter(date1)) {
  print('Date2 lebih akhir dari Date1');
}

if (date1.isAtSameMomentAs(date2)) {
  print('Date1 dan Date2 berada pada waktu yang sama');
}

Pada contoh di atas, metode isBefore(), isAfter(), dan isAtSameMomentAs() digunakan untuk membandingkan dua objek DateTime.

Menghitung Durasi Antara Dua DateTime #

Anda bisa menghitung perbedaan waktu antara dua objek DateTime dengan menggunakan operator pengurangan (-), yang akan menghasilkan objek Duration.

Contoh:

DateTime mulai = DateTime(2024, 8, 24, 14, 0, 0);
DateTime akhir = DateTime(2024, 8, 24, 16, 0, 0);

Duration durasi = akhir.difference(mulai);
print('Durasi: ${durasi.inHours} jam ${durasi.inMinutes % 60} menit');

Pada contoh di atas, durasi akan mengembalikan perbedaan waktu antara dua objek DateTime, yang bisa diakses dalam jam, menit, detik, dan lainnya.

Memformat DateTime sebagai String #

Dart menyediakan beberapa cara untuk memformat objek DateTime menjadi string yang dapat dibaca. Selain menggunakan metode bawaan seperti toString(), Anda bisa menggunakan pustaka seperti intl untuk memformat tanggal dan waktu dengan lebih fleksibel.

Menggunakan toString() #

Metode toString() menghasilkan representasi string dari objek DateTime dalam format ISO 8601.

Contoh:

DateTime sekarang = DateTime.now();
print(sekarang.toString()); // Output: 2024-08-24 14:45:00.000

Menggunakan Pustaka intl #

Pustaka intl memberikan fleksibilitas dalam memformat tanggal dan waktu.

Contoh:

import 'package:intl/intl.dart';

void main() {
  DateTime sekarang = DateTime.now();
  String formattedDate = DateFormat('dd-MM-yyyy').format(sekarang);
  String formattedTime = DateFormat('HH:mm:ss').format(sekarang);

  print('Tanggal: $formattedDate');
  print('Waktu: $formattedTime');
}

Pada contoh di atas, DateFormat dari pustaka intl digunakan untuk memformat objek

DateTime menjadi string yang diinginkan.

Null Safety pada DateTime #

Dalam Dart, dengan penerapan null safety, Anda perlu memperhatikan bahwa objek DateTime mungkin null. Ini dapat diatur dengan menandai variabel sebagai nullable (DateTime?).

Contoh:

DateTime? mungkinNull;

if (mungkinNull != null) {
  print('Tanggal: ${mungkinNull.year}');
} else {
  print('Objek DateTime ini adalah null.');
}

Pada contoh di atas, kita memeriksa apakah objek DateTime null sebelum mengakses propertinya.

Kesimpulan #

DateTime dalam Dart adalah alat yang sangat kuat untuk bekerja dengan tanggal dan waktu. Dengan menggunakan berbagai constructor, Anda dapat membuat objek DateTime dari berbagai sumber. Properti DateTime memungkinkan Anda mengakses bagian-bagian spesifik dari tanggal dan waktu, sementara metode seperti add(), subtract(), dan difference() memungkinkan Anda untuk memanipulasi dan membandingkan waktu. Untuk memformat tanggal dan waktu, Dart menyediakan metode bawaan serta pustaka eksternal seperti intl untuk fleksibilitas yang lebih besar. Memahami DateTime secara mendetail akan sangat membantu dalam pengembangan aplikasi yang memerlukan pengolahan waktu dan tanggal.

« Map
Regex »