如何在飞镖中正确转换时间

How to convert correctly only time in dart

我有这样的字符串

String time = '13:00:00Z'; (Zulu time)

我想在正确的本地时间将其转换为字符串。
例如,如果我执行程序,我想要 15:00 作为结果,因为 13:00 在我的本地时间是 15:00.

我收到错误“FormatExeption:无效的日期格式”,无论我在 DateFormat

中输入什么

您可以将当前日期添加到时间字符串之前,然后使用 toLocal() 将其转换为您的本地时间:

DateTime date = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd').format(date);
String time = "13:00:00Z";
DateTime dt = DateTime.parse(formattedDate + "T" + time).toLocal();
String formattedTime = DateFormat('HH:mm').format(dt);
print(formattedTime);

(DateFormat 来自 intl package)