将字符串解析为Flutter(Dart)中的DateTime [重复]

okxuctiv  于 2023-03-13  发布在  Flutter
关注(0)|答案(4)|浏览(125)

此问题在此处已有答案

How do I convert a date/time string to a DateTime object in Dart?(8个答案)
1年前关闭。
我尝试将格式类似“23.1.2020”的字符串解析为DateTime对象,但没有任何效果。我尝试使用一些包,如intl或date_format,但没有一个可以完成这项工作。

DateTime todayDate = DateTime.parse("12.04.2020");
formatDate(todayDate, [yyyy, '/', mm, '/', dd, ' ', hh, ':', nn, ':', ss, ' ', am])

你知道,怎么解析这个吗?

wfauudbj

wfauudbj1#

好吧,我找到办法了:

import 'package:intl/intl.dart';

DateFormat format = DateFormat("dd.MM.yyyy");
print(format.parse(date));
cnh2zyt3

cnh2zyt32#

如果你绝对确定你的日期格式总是"dd.MM.yyyy",你可以这样做:

DateTime todayDate = DateTime.parse("12.04.2020".split('.').reversed.join());

这个技巧将把你的日期格式化为"yyyyMMdd",根据the docsDateTime.parse()接受这种格式。

bz4sfanl

bz4sfanl3#

试试这个包Jiffy,它也运行在Intl之上,但是使用momentjs语法会更容易。

var date = Jiffy.parse("12.04.2020", pattern: "dd.MM.yyyy").format("dd, Oct yy"); // 12, Apr 20

您还可以使用以下默认格式

var date = Jiffy.parse("12.04.2020", pattern: "dd.MM.yyyy").yMMMMd; // April 12, 2020

希望这能帮上忙

s5a0g9ez

s5a0g9ez4#

函数将日期转换为字符串:

String dateTostring(DateTime datevalue)
{
String _stringdate ="";

_stringdate = datevalue.month.toString()+"."+datevalue.day.toString()+"."+datevalue.year.toString() ;

return _stringdate;
}

然后函数将字符串转换为日期:

DateTime dateStringtodate(String stringdate)
{
DateTime _stringdate;

List<String> validadeSplit = stringdate.split('.');

if(validadeSplit.length > 1)
{
  int day = int.parse(validadeSplit[1].toString()));
  int month = int.parse(validadeSplit[0].toString());
  int year = int.parse(validadeSplit[2].toString());

  _stringdate = DateTime.utc(year, day, month);

}

return _stringdate;
}

相关问题