import 'dart:developer'; import 'package:intl/intl.dart'; extension ddMM_HHmm on String { //"2020-08-13T02:11:32Z" => 13/08 02:11 // convert utc to local timezone String format_DDMM_HHmm() { try { final str = this.toString(); var dateFromString = DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(str, true).toLocal(); return DateFormat("dd/MM HH:mm").format(dateFromString); } catch (_) { return ""; } } String format_DDMMYY_HHmm() { try { final str = this.toString(); var dateFromString = DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(str, true).toLocal(); return DateFormat("dd/MM/yyyy HH:mm").format(dateFromString); } catch (_) { return ""; } } } extension numToString on num { String formatNumtoStringDecimal() { try { var numWithLocalSeparator = new NumberFormat.decimalPattern("vi_VN"); final str = numWithLocalSeparator.format(this); return str; } catch (_) { return ""; } } } extension HHmm on Duration { String formatHHmm() { //1:34:00.000000 final str = this.toString(); final texts = str.split(":"); final textHour = texts[0].padLeft(2, '0'); final textMinute = texts[1].padLeft(2, '0'); return "${textHour}h ${textMinute}m"; } } extension FormatNumber on int { String formatDecimalThousand() { //1403 -> 1,403 var f = new NumberFormat.decimalPattern("vi_VN"); return f.format(this); } } extension FormatNumberToDecimal on double { String formatDecimalThousand() { var f = new NumberFormat.decimalPattern("vi_VN"); return f.format(this); } } extension FormatDate on int { String MMM_dd_yyyy() { return DateFormat("MMM dd, yyyy") .format(DateTime.fromMillisecondsSinceEpoch(this * 1000)); } } extension DoubleParsing on String { double parseDoubleThousand() { var newValue = this.replaceAll(".", ""); var changeToServerFormat = newValue.replaceAll(",", "."); return double.tryParse(changeToServerFormat); } } extension IntParsing on String { int parseIntThousand() { var newValue = this.replaceAll(".", ""); var changeToServerFormat = newValue.replaceAll(",", "."); return int.tryParse(changeToServerFormat); } }