在 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) 中将日期时间转换为 C# timetick [关闭]