Flutter中解析DateTime.now()为hh:mm:ss格式报错,求正确实现方法
问题解决:正确获取hh:mm:ss格式的时间
你的错误根源是搞反了DateFormat的parse和format方法的用途:
parse是将符合指定格式的字符串转换为DateTime对象format是将DateTime对象转换为指定格式的字符串
你用hh:mm:ss格式去解析DateTime.now().toString()生成的完整日期时间字符串(比如2022-12-05 15:40:34.987),格式完全不匹配,所以抛出了FormatException。
正确代码(12小时制)
import 'package:intl/intl.dart'; void main() { var now = DateTime.now(); DateFormat timeFormat = DateFormat('hh:mm:ss'); String currentTime = timeFormat.format(now); print(currentTime); // 输出示例:03:40:34 }
24小时制版本
如果需要24小时制的时间,把格式字符串改成HH:mm:ss即可:
import 'package:intl/intl.dart'; void main() { var now = DateTime.now(); DateFormat timeFormat = DateFormat('HH:mm:ss'); String currentTime = timeFormat.format(now); print(currentTime); // 输出示例:15:40:34 }
内容的提问来源于stack exchange,提问作者coolhack7
相关产品推荐
相关产品推荐

