如何在 DateFormat 中显示纪元?

How to show eras in DateFormat?

我不是在寻找强大的东西,因为日期格式 DateFormat 就足够了,但我需要添加 A.DB.C 就像 Anno Domini 中的日期一样。

现在我知道自定义它甚至不是一个挑战,但我正在寻找与官方一起做的最佳方法 API 以便它可以适应未来的变化。

package:intl's DateFormat class 应该可以使用 G 格式化程序:

import 'package:intl/intl.dart';

void main() {
  var date = DateTime(2021, 5, 6);
  print(DateFormat('yyyy-MM-dd G').format(date)); // Prints: 2021-05-06 AD
}

注意负数年份好像直接假设为BC;也就是说,-1 年似乎被视为 1 BC。 This might not be what you expect if you want year 0 to be invalid.