Files
penyaluran_app/lib/app/utils/date_formatter.dart
Khafidh Fuadi f7397cb9cf Refactor stok bantuan model dan kontroller untuk mendukung kategori bantuan
- Ubah model StokBantuanModel dari 'jenis bantuan' menjadi 'kategori bantuan'
- Perbarui metode loadJenisBantuanData() menjadi loadKategoriBantuanData()
- Tambahkan metode baru untuk menghitung stok hampir habis dan segera kadaluarsa
- Update tampilan dan form untuk menggunakan kategori bantuan
- Perbaiki logika navigasi dan binding pada berbagai modul terkait
2025-03-11 22:14:07 +07:00

57 lines
1.6 KiB
Dart

import 'package:intl/intl.dart';
class DateFormatter {
static String formatDate(DateTime? date,
{String format = 'dd MMMM yyyy',
String locale = 'id_ID',
String defaultValue = '-'}) {
if (date == null) return defaultValue;
try {
return DateFormat(format, locale).format(date);
} catch (e) {
print('Error formatting date: $e');
return date.toString().split(' ')[0]; // Fallback to basic format
}
}
static String formatTime(DateTime? time,
{String format = 'HH:mm',
String locale = 'id_ID',
String defaultValue = '-'}) {
if (time == null) return defaultValue;
try {
return DateFormat(format, locale).format(time);
} catch (e) {
print('Error formatting time: $e');
return time
.toString()
.split(' ')[1]
.substring(0, 5); // Fallback to basic format
}
}
static String formatDateTime(DateTime? dateTime,
{String format = 'dd MMMM yyyy HH:mm',
String locale = 'id_ID',
String defaultValue = '-'}) {
if (dateTime == null) return defaultValue;
try {
return DateFormat(format, locale).format(dateTime);
} catch (e) {
print('Error formatting date time: $e');
return dateTime.toString().split('.')[0]; // Fallback to basic format
}
}
static String formatNumber(num? number,
{String locale = 'id_ID', String defaultValue = '0'}) {
if (number == null) return defaultValue;
try {
return NumberFormat("#,##0.##", locale).format(number);
} catch (e) {
print('Error formatting number: $e');
return number.toString(); // Fallback to basic format
}
}
}