flutter/Dart : Convert date to yyyy-MM-dd'T'HH:mm:ss. SSS'Z'

标签 flutter date datetime dart

尝试将 DateTime.now() 转换为:2019-06-04T12:08:56.235-0700

API 文档坚持认为数据格式为:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 但我无法为 Dart 弄明白。就此而言甚至不是 python。

我已经尝试过 now.toIso8601String() 但它并没有完全解决问题(即 2019-12-03T17:50:23.476164)。它缺少最后一个 - 部分和一位数字。 flutter 中的 API 调用返回一个 {code:415 message HTTP 415 Unsupported Media Type} 作为结果。

我错过了什么?

最佳答案

正如@hata 指出的那样,它尚未实现。因此,要完全按照要求添加 Z(时区为数字),我这样做了:

String formatISOTime(DateTime date) {
    //converts date into the following format:
// or 2019-06-04T12:08:56.235-0700
    var duration = date.timeZoneOffset;
    if (duration.isNegative)
      return (DateFormat("yyyy-MM-ddTHH:mm:ss.mmm").format(date) +
          "-${duration.inHours.toString().padLeft(2, '0')}${(duration.inMinutes - (duration.inHours * 60)).toString().padLeft(2, '0')}");
    else
      return (DateFormat("yyyy-MM-ddTHH:mm:ss.mmm").format(date) +
          "+${duration.inHours.toString().padLeft(2, '0')}${(duration.inMinutes - (duration.inHours * 60)).toString().padLeft(2, '0')}");
  }

已实现:

  void main() {
    DateTime getCurrentTimestamp = DateTime.now();
    print('agreement signed');
    String agreementSigned = formatISOTime(getCurrentTimestamp);
    print(agreementSigned);
  }

什么时候跑:

main();

// Result:

2021-10-29T17:53:56.053+0100

关于 flutter/Dart : Convert date to yyyy-MM-dd'T'HH:mm:ss. SSS'Z',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69771455/

相关文章:

flutter - 使用for循环在Flutter中创建嵌套的小部件

flutter - 如何制作可重用的 Futurebuilder

python - 将带有季度的时间戳字符串解析为 Python 日期时间

c# - 为什么这个 DateTime 解析总是失败?

c# - 如何在 C# 中将日期(从日期时间输入字段)转换为另一种日期格式?

Python pandas 查找时间之间的数据

flutter - 指南/演练层实现

flutter - 为什么迁移到 flutter 3.3.0 后 Build 失败?

javascript - JQuery ui - 日期选择器、日期格式

Java从字符串中解析带时区的日期