datetime - 如何使用 UTC 时区偏移量格式化 DateTime?

标签 datetime flutter dart

这是什么类型的日期格式?

2020-03-26T00:57:08.000+08:00

我正在使用 DateFormat

 DateTime dateTime = DateTime.now();

 print(dateTime.toIso8601String());
 print(dateTime.toLocal());
 print(dateTime.toUtc());

输出

I/flutter (20667): 2020-03-26T01:34:20.826589
I/flutter (20667): 2020-03-26 01:34:20.826589
I/flutter (20667): 2020-03-25 17:34:20.826589Z

我想要像我显示的第一个输出那样的日期格式,它后面有 +08:00。我应该使用哪个?

最佳答案

目前还没有直接的方法来获取这种日期格式。有一个解决方法。

  • 添加intl
  • 使用 import 'package:intl/intl.dart';
  • 将其导入您的文件
  • 编写如下代码:
var dateTime = DateTime.now();
var val      = DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(dateTime);
var offset   = dateTime.timeZoneOffset;
var hours    = offset.inHours > 0 ? offset.inHours : 1; // For fixing divide by 0

if (!offset.isNegative) {
  val = val +
      "+" +
      offset.inHours.toString().padLeft(2, '0') +
      ":" +
      (offset.inMinutes % (hours * 60)).toString().padLeft(2, '0');
} else {
  val = val +
      "-" +
      (-offset.inHours).toString().padLeft(2, '0') +
      ":" +
      (offset.inMinutes % (hours * 60)).toString().padLeft(2, '0');
}
print(val);

关于datetime - 如何使用 UTC 时区偏移量格式化 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60854312/

相关文章:

python - 如何检查日期时间对象是否使用 pytz 本地化?

c# - 删除早于今天日期的文件

flutter - 在 Flutter 中禁用 `semantics` 系统?

flutter - 获取工作日ID的格式名称

flutter - 在 Flutter 中初始化时带有错误表情符号的文本小部件

dart - 如何在将 flutter 应用程序迁移到 flutter web 时显示图像 Assets ?

mySQL 需要以 EST 显示时区,但无法更改全局时间设置

python - 将 unix 时间戳字符串转换为可读日期

regex - 为什么此正则表达式不返回任何匹配项?

dart - dart 控制台应用程序中的 Ctrl+c