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
This commit is contained in:
75
lib/app/utils/date_time_helper.dart
Normal file
75
lib/app/utils/date_time_helper.dart
Normal file
@ -0,0 +1,75 @@
|
||||
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';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user