You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.6KB

  1. import 'dart:developer';
  2. import 'package:intl/intl.dart';
  3. extension ddMM_HHmm on String {
  4. //"2020-08-13T02:11:32Z" => 13/08 02:11
  5. // convert utc to local timezone
  6. String format_DDMM_HHmm() {
  7. try {
  8. final str = this.toString();
  9. var dateFromString =
  10. DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(str, true).toLocal();
  11. return DateFormat("dd/MM HH:mm").format(dateFromString);
  12. } catch (_) {
  13. return "";
  14. }
  15. }
  16. //TODO: Check timezone with api update true/false
  17. String format_DDMMYY_HHmm() {
  18. try {
  19. final str = this.toString();
  20. var dateFromString =
  21. DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(str, false).toLocal();
  22. return DateFormat("dd/MM/yyyy HH:mm").format(dateFromString);
  23. } catch (_) {
  24. return "";
  25. }
  26. }
  27. String formatStringToStringDecimal() {
  28. try {
  29. var numOfString = double.tryParse(this.toString());
  30. var numWithLocalSeparator = new NumberFormat.decimalPattern("vi_VN");
  31. final str = numWithLocalSeparator.format(numOfString);
  32. return str;
  33. } catch (_) {
  34. return "";
  35. }
  36. }
  37. }
  38. extension numToString on num {
  39. String formatNumtoStringDecimal() {
  40. try {
  41. var numWithLocalSeparator = new NumberFormat.decimalPattern("vi_VN");
  42. final str = numWithLocalSeparator.format(this);
  43. return str;
  44. } catch (_) {
  45. return "";
  46. }
  47. }
  48. }
  49. extension HHmm on Duration {
  50. String formatHHmm() {
  51. //1:34:00.000000
  52. final str = this.toString();
  53. final texts = str.split(":");
  54. final textHour = texts[0].padLeft(2, '0');
  55. final textMinute = texts[1].padLeft(2, '0');
  56. return "${textHour}h ${textMinute}m";
  57. }
  58. }
  59. extension FormatNumber on int {
  60. String formatDecimalThousand() {
  61. //1403 -> 1,403
  62. var f = new NumberFormat.decimalPattern("vi_VN");
  63. return f.format(this);
  64. }
  65. }
  66. extension FormatNumberToDecimal on double {
  67. String formatDecimalThousand() {
  68. var f = new NumberFormat.decimalPattern("vi_VN");
  69. return f.format(this);
  70. }
  71. }
  72. extension FormatDate on int {
  73. String MMM_dd_yyyy() {
  74. return DateFormat("MMM dd, yyyy")
  75. .format(DateTime.fromMillisecondsSinceEpoch(this * 1000));
  76. }
  77. }
  78. extension DoubleParsing on String {
  79. double parseDoubleThousand() {
  80. var newValue = this.replaceAll(".", "");
  81. var changeToServerFormat = newValue.replaceAll(",", ".");
  82. return double.tryParse(changeToServerFormat);
  83. }
  84. }
  85. extension IntParsing on String {
  86. int parseIntThousand() {
  87. var newValue = this.replaceAll(".", "");
  88. var changeToServerFormat = newValue.replaceAll(",", ".");
  89. return int.tryParse(changeToServerFormat);
  90. }
  91. }