如何在 flutter dart 中将“/Date(1639580400000-0000)/”转换为日期时间格式

How to convert "/Date(1639580400000-0000)/" into the date time format in flutter dart

提问人:Yash Jangir 提问时间:10/27/2023 最后编辑:NageenYash Jangir 更新时间:10/30/2023 访问量:75

问:

如何在flutter dart中转换为日期时间格式。Date(1639580400000-0000)

startDateTime: ,Date(1639580400000-0000)

我想将此字符串更改为日期格式 :exp- (12-MAY-2023)

我想在 Flutter (dart) 中将这个字符串转换为日期格式

Flutter dart 开发者工具

评论


答:

0赞 Munsif Ali 10/27/2023 #1

您可以尝试此功能,希望这对您有用

DateTime parseStringToDate(String input) {
  final RegExp dateRegex = RegExp(r"\/Date\((\d+)([+-]\d{4})\)\/");
  final match = dateRegex.firstMatch(input);

  if (match != null) {
    final timestamp = int.parse(match.group(1)!);
    final offset = match.group(2);
    final milliseconds = timestamp + (offset == "-0000" ? 0 : int.parse(offset!));

    return DateTime.fromMillisecondsSinceEpoch(milliseconds, isUtc: true);
  }

  throw Exception("Invalid date format: $input");
}

您可以在此处查看完整代码 https://dartpad.dev/?id=4223a468a49f24a41f0282fb990718fb

0赞 vinit 10/27/2023 #2
    changeDateFormat(date){
  RegExp? regex = RegExp(r'\d+');
  Match? match = regex.firstMatch(date);
  int timestamp = int.parse(match!.group(0).toString());

  DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp, isUtc: true);
  var convertedDate = DateFormat("dd-MMM-yyyy").format(dateTime);
  return convertedDate;
}

评论

0赞 Jeremy Caney 11/6/2023
请记住,Stack Overflow 不仅旨在解决眼前的问题,还旨在帮助未来的读者找到类似问题的解决方案,这需要了解底层代码。这对于我们社区中不熟悉语法的初学者来说尤其重要。鉴于此,您能否编辑您的答案以包括对您正在做的事情的解释以及您为什么认为这是最好的方法?
0赞 Vivek Chib 10/27/2023 #3

将此软件包 (intl) 添加到您的 pubspec。

String formatDate() {
  String input = "/Date(1639580400000-0000)/";
  
  int startIdx = input.indexOf("(");
  int endIdx = input.indexOf(")");
  
  String time = input.substring(startIdx+1,endIdx);

  int index = time.indexOf("-");

  if (index == -1) index = time.length;

  String formattedDate = DateFormat('dd-MMM-yyyy').format(
      DateTime.fromMillisecondsSinceEpoch(int.parse(time.substring(0, index))));

  return formattedDate;
}

demo