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

Posted

技术标签:

【中文标题】在 Flutter(Dart)中将字符串解析为 DateTime [重复]【英文标题】:Parse string to DateTime in Flutter (Dart) [duplicate] 【发布时间】:2020-05-09 15:36:17 【问题描述】:

我正在尝试将格式为“23.1.2020”的字符串解析为 DateTime 对象,但对我没有任何作用。我尝试使用一些包,如 intl 或 date_format,但这些包都不能胜任。

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

你知道如何解析这个吗?

【问题讨论】:

【参考方案1】:

好的,我找到了方法:

import 'package:intl/intl.dart';

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

【讨论】:

【参考方案2】:

如果您绝对确定您的日期格式将始终为 "dd.MM.yyyy",您可以这样做:

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

此技巧会将您的日期格式化为"yyyyMMdd" 格式,根据the docs,DateTime.parse() 接受该格式。

【讨论】:

【参考方案3】:

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

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

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

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

希望对你有帮助

【讨论】:

【参考方案4】:

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

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;

【讨论】:

以上是关于在 Flutter(Dart)中将字符串解析为 DateTime [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Dart/Flutter 中将数字从 20,95 转换为 20.95?

在 Dart Flutter 中将文件转换为 Blob

在 Dart (Flutter) 中将日期时间转换为 C# timetick [关闭]

如何在 Dart/flutter 中将视频文件分割成小块?

如何在 Flutter/Dart 中将 Future<double> 转换为 double?

Dart 解析字符串包含地图列表 [重复]