0

所以我使用国际包。这是我的代码

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

String toString(DateTime originalDate) {
    initializeDateFormatting();
    final DateFormat formatter = DateFormat("EEEE, d MMMM. HH:mm zzz", "id");
    final String formatted = formatter.format(originalDate);
    return formatted;
  }

如您所见,我正在尝试使用"EEEE, d MMMM. HH:mm zzz"格式将 DateTime 作为字符串。所以我希望我会有这样的结果日期字符串:

塞宁,24 岁。西部时间 18:00。

但是每当我有zzz格式时我都会出错。如果我删除zzz它应该没问题。

我想我需要在上面的代码中添加一个 TimeZone ID。因为我在date_format_field.dart文件中有这个未实现的错误

String formatTimeZone(DateTime date) {
    throw UnimplementedError();
  }

但我不知道如何将 timezoneID 设置为我的代码。我的时区 ID 是“亚洲/雅加达”

如果您有不同的代码或根本不使用 intl 包,我可以。只要我可以指定时区和语言环境 ID

4

1 回答 1

0

Dart的副本 - 如何根据设备时区格式化 DateTime?

尝试使用这个:

String toString(DateTime originalDate) {
    initializeDateFormatting();
    final DateFormat formatter = DateFormat("EEEE, d MMMM. HH:mm zzz").parseUTC(dateTime).toLocal();
    final String formatted = formatter.format(originalDate);
    return formatted;
  }
于 2021-05-24T04:04:45.927 回答