flutter Dart -如何根据设备时区格式化DateTime?

yquaqz18  于 2022-11-25  发布在  Flutter
关注(0)|答案(4)|浏览(173)

我是一个新手飞镖。我目前面临着一个问题,格式化我的日期时间,以显示基于设备的时区的时间。有人能告诉我如何才能做到这一点吗?我目前的代码如下:

DateFormat('dd MMM yyyy hh:mm')

输出范例:2019年3月11日07:04
期望值:我的设备目前使用的是GMT+8,我希望它显示为11 Mar 2019 15. 04。
请指教。谢谢!!

w8f9ii69

w8f9ii691#

将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);
tkqqtvp1

tkqqtvp12#

我从laravel api那里获取了数据
拉威尔日期时间UTC,如2021-05- 21 T17:33:24.000000Z

import 'package:intl/intl.dart';

String dateTime = "2021-05-21T17:33:24.000000Z" // String datetime UTC zone

DateTime parsedDateFormat = DateFormat("yyyy-MM-ddTHH:mm:ssZ").parseUTC(dateTime).toLocal(); // parse String datetime to DateTime and get local date time 

String formatedDateTime = DateFormat.yMd().add_jm().format(parsedDateFormat).toString(); // convert local date time to string format local date time

// output is 5/21/2021 11:03PM
tquggr8v

tquggr8v3#

要确保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())
n3ipq98p

n3ipq98p4#

安装intl package,然后使用DateFormat。
第一个

相关问题