我是 Dart 的新手。我目前在格式化 DateTime 以根据设备的时区显示时间时遇到问题。有人可以建议我如何实现这一目标吗?我目前的代码如下:
DateFormat('dd MMM yyyy hh:mm')
Run Code Online (Sandbox Code Playgroud)
输出样本:2019 年 3 月 11 日 07:04
期望:我的设备目前正在使用 GMT+8,我期望它显示为 2019 年 3 月 11 日 15.04。
请指教。谢谢!!
将 UTC 转换为本地时区:
import 'package:intl/intl.dart';
var dateValue = new DateFormat("yyyy-MM-ddTHH:mm:ssZ").parseUTC("2020-06-14T18:55:21Z").toLocal();
String formattedDate = DateFormat("dd MMM yyyy hh:mm").format(dateValue);
debugPrint("formattedDate = "+formattedDate);
Run Code Online (Sandbox Code Playgroud)
为了确保您的 DateTime 使用设备的当前时区,请始终使用 toLocal()。
DateTime.toLocal() 文档: https://api.dart.dev/stable/2.18.5/dart-core/DateTime/toLocal.html
所以简单地做:
DateFormat('dd MMM yyyy hh:mm').format(myDate.toLocal())
Run Code Online (Sandbox Code Playgroud)
Fil*_*cks -3
安装intl 包,然后使用 DateFormat。
import 'package:intl/intl.dart';
Run Code Online (Sandbox Code Playgroud)
final dateFormatter = DateFormat('d MMMM yyyy hh:mm');
print(dateFormatter.format(your_date_time_object));
Run Code Online (Sandbox Code Playgroud)