flutter - Flutter:将字符串转换为日期并将日期转换为整数
问题描述
我有一个来自格式为“2020-05-19”的 JSON 的日期。我需要将其转换为 DateTime 变量,以便将其格式化回字符串以进行显示,但我还需要使用 DateTime 值并向其添加 x 天数。所以我还需要能够将其转换为整数,以便我可以添加 (x_days * 86400000)。
谁能告诉我该怎么做,或者有没有更好的方法来做我想做的事情?
干杯,
保罗
解决方案
要将字符串转换为日期,您可以使用 DateTime 的parseStrict
方法:
String dateStr = "2020-05-19";
DateTime date = DateFormat("yyyy-MM-dd", 'en').parseStrict(dateStr);
您还可以创建一个辅助方法:
static DateTime convertToDate(String input, String format) {
try {
final DateTime d = DateFormat(format, 'en').parseStrict(input);
return d;
} catch (e) {
return null;
}
}
然后像这样使用它:
DateTime date = convertToDate("2020-05-19", "yyyy-MM-dd");
我使用了“en”语言环境,但您可以根据需要更改它或将其作为参数传递。
对于更松散的解析,请使用parse。
然后使用 DateTime 的add
方法添加天数,例如添加 2 天:
date.add(Duration(days: 2));
推荐阅读
- c++ - 为什么在将 RTTI 与没有 RTTI 构建的代码混合时,MSVC 不给出链接器问题?
- python - 如何减少 pandas .plot 函数中 x 轴刻度之间的间距?
- unity3d - 无法在统一 UWP 应用程序中打开网页(Hololens)
- c# - Elasticsearch.NET 版本 7 - 如何创建索引
- python - 如何使用反向引用作为索引来通过列表替换?
- java - 无法加载 [org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings]
- ansible - Ansible pamd:模块故障
- conda - 更改目录时自动激活 conda env
- sql - 选择包含非字母数字的行
- java - 在 grpc 拦截器中使用 ThreadLocal 的正确方法是什么?