Files
penyaluran_app/lib/app/utils/date_time_helper.dart
Khafidh Fuadi 7c94b85434 Perbarui dependensi dan konfigurasi lokal untuk mendukung fitur baru
- Tambahkan dependensi baru: syncfusion_flutter_calendar, syncfusion_localizations, dan flutter_localizations di pubspec.yaml
- Perbarui konfigurasi lokal di main.dart untuk mendukung bahasa Indonesia dan menambahkan delegasi lokal
- Modifikasi model PenyaluranBantuan untuk memastikan format tanggal menggunakan UTC
- Perbarui tampilan dan logika di beberapa widget untuk meningkatkan pengalaman pengguna dan konsistensi data
- Ganti posisi snack bar dari bawah ke atas untuk notifikasi yang lebih baik
2025-03-14 08:09:54 +07:00

76 lines
2.1 KiB
Dart

import 'package:intl/intl.dart';
class DateTimeHelper {
/// Mengkonversi DateTime dari UTC ke timezone lokal
static DateTime toLocalDateTime(DateTime utcDateTime) {
return utcDateTime.toLocal();
}
/// Format tanggal ke format Indonesia (dd MMM yyyy)
static String formatDate(DateTime? dateTime) {
if (dateTime == null) return 'Belum ditentukan';
// Pastikan tanggal dalam timezone lokal
final localDateTime = toLocalDateTime(dateTime);
return DateFormat('dd MMM yyyy').format(localDateTime);
}
/// Format waktu ke format 24 jam (HH:mm)
static String formatTime(DateTime? dateTime) {
if (dateTime == null) return 'Belum ditentukan';
// Pastikan waktu dalam timezone lokal
final localDateTime = toLocalDateTime(dateTime);
return DateFormat('HH:mm').format(localDateTime);
}
/// Format tanggal dan waktu (dd MMM yyyy HH:mm)
static String formatDateTime(DateTime? dateTime) {
if (dateTime == null) return 'Belum ditentukan';
// Pastikan tanggal dan waktu dalam timezone lokal
final localDateTime = toLocalDateTime(dateTime);
return "${DateFormat('dd MMM yyyy').format(localDateTime)} ${DateFormat('HH:mm').format(localDateTime)}";
}
/// Format tanggal lengkap dalam bahasa Indonesia (Senin, 01 Januari 2023)
static String formatDateIndonesian(DateTime? dateTime) {
if (dateTime == null) return 'Belum ditentukan';
// Pastikan tanggal dalam timezone lokal
final localDateTime = toLocalDateTime(dateTime);
final List<String> namaBulan = [
'Januari',
'Februari',
'Maret',
'April',
'Mei',
'Juni',
'Juli',
'Agustus',
'September',
'Oktober',
'November',
'Desember'
];
final List<String> namaHari = [
'Minggu',
'Senin',
'Selasa',
'Rabu',
'Kamis',
'Jumat',
'Sabtu'
];
final String hari = namaHari[localDateTime.weekday % 7];
final String tanggal = localDateTime.day.toString().padLeft(2, '0');
final String bulan = namaBulan[localDateTime.month - 1];
final String tahun = localDateTime.year.toString();
return '$hari, $tanggal $bulan $tahun';
}
}