尝试将 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/