如何将字符串'31/12/2023 00:00:00'格式化为'dd/MM/yyyy'作为DateTime,然后在Dart中格式化为String?

wfypjpf4  于 2023-06-27  发布在  其他
关注(0)|答案(3)|浏览(104)

我将日期存储在数据库中为String,并通过模型String? myDate;调用它,数据保存为31/12/2023 00:00:00。我想在Text小部件显示为31/12/2023不是31/12/2023 00:00:00,所以我试图covnert StringDateTime,然后再到String,但结果是2023-12-31 00:00:00.000

var date = '31/12/2023 00:00:00';
DateTime parseDate = intl.DateFormat("dd/MM/yyyy").parse(date);
var inputDate = DateTime.parse(parseDate.toString());
print(inputDate);
//output: 2023-12-31 00:00:00.000

如何实现我的目标?

brtdzjyr

brtdzjyr1#

为了实现你的目标,你可以做以下事情

var date = '31/12/2023 00:00:00';
DateTime parseDate = DateTime.parse(date);
var formattedDate = DateFormat("dd/MM/yyyy").format(parseDate);
print(formattedDate); // Output: 31/12/2023


您可以一步完成所有操作

var date = '31/12/2023 00:00:00';
String formattedDate = DateFormat("dd/MM/yyyy").format(DateTime.parse(date));
print(formattedDate); // Output: 31/12/2023
c2e8gylq

c2e8gylq2#

只需在DateTime上调用这些方法,其不言自明:

void main() {
  var date = '31/12/2023 00:00:00';
  DateTime parseDate = intl.DateFormat("dd/MM/yyyy").parse(date);
  
  final formattedDate = "${parseDate.day}/${parseDate.month}/${parseDate.year}";
  print(formattedDate);
}

图纸:

31/12/2023
oxiaedzo

oxiaedzo3#

你需要玩你的String并将其转换为intl.DateFormat可以使用的格式。
这段代码解决了我的问题:

var date = '31/12/2023 00:00:00';
String dateWithT = "${date.substring(6, 10)}-${date.substring(3, 5)}-${date.substring(0, 2)}T00:00:00.000000Z";
DateTime parseDate = intl.DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(dateWithT);
var inputDate = DateTime.parse(parseDate.toString());
var outputFormat = intl.DateFormat('dd/MM/yyyy');
var outputDate = outputFormat.format(inputDate);
print(outputDate);

相关问题