Flutter/Dart中如何将输入日期字符串转换为后端要求的ISO格式?
解决方案(Dart/Flutter环境)
你可以按照以下步骤转换格式:
- 先将控制器读取到的日期字符串解析为
DateTime对象 - 构造UTC时区的目标时间,再转换为ISO8601格式字符串
完整代码示例:
// 1. 读取输入的日期字符串 final inputDate = dateControllerJoin.text; // 2. 解析为DateTime对象 final parsedDateTime = DateTime.parse(inputDate); // 3. 构造UTC时区的17:00:00时间 final targetUtcTime = DateTime.utc( parsedDateTime.year, parsedDateTime.month, parsedDateTime.day, 17, 0, 0, ); // 4. 转换为要求的格式(去除毫秒部分) final submitDate = '${targetUtcTime.toIso8601String().split('.').first}Z';
执行后submitDate的输出结果就是2021-01-01T17:00:00Z,可直接提交给后端。
注意:如果需求不是固定17点,而是需要把输入的当地时间转换为对应UTC时间,可直接调用
parsedDateTime.toUtc()再做格式转换即可,不需要手动指定时分秒。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

