在 Flutter 中为 DateTime 转换似乎无法正常工作
Posted
技术标签:
【中文标题】在 Flutter 中为 DateTime 转换似乎无法正常工作【英文标题】:convert for DateTime in Flutter does not seem to work correctly 【发布时间】:2020-08-29 23:56:42 【问题描述】:以毫秒为单位的转换与转换后的原始版本不同。 微秒转换工作正常。
测试代码:
print("---Milliseconds:");
DateTime dateTimeStart = DateTime.now();
print("Datetime: $dateTimeStart");
int milliseconds = dateTimeStart.millisecondsSinceEpoch;
print("Milliseconds: $milliseconds");
DateTime dateTimeEnd = DateTime.fromMillisecondsSinceEpoch(milliseconds);
print("DateTimeEnd: $dateTimeEnd");
print("---Microseconds:");
print("Datetime: $dateTimeStart");
int microseconds = dateTimeStart.microsecondsSinceEpoch;
print("Microseconds: $microseconds");
DateTime dateTimeEnd2 = DateTime.fromMicrosecondsSinceEpoch(microseconds);
print("DateTimeEnd2: $dateTimeEnd2");
输出:
I/flutter (26574):---毫秒: I/flutter (26574): 日期时间: 2020-05-13 18:40:12.675351 I/flutter (26574):毫秒:1589388012675 I/flutter (26574): DateTimeEnd: 2020-05-13 18:40:12.675 I/flutter (26574):---微秒: I/flutter (26574): 日期时间: 2020-05-13 18:40:12.675351 I/flutter (26574):微秒:1589388012675351 I/flutter (26574): DateTimeEnd2: 2020-05-13 18:40:12.675351
还是我在某个地方有错误?
颤振医生 -v [√] Flutter (Channel stable, v1.17.0, on Microsoft Windows [Version 10.0.18362.836], locale de-DE) • Flutter 版本 1.17.0,位于 C:\androidStudio\FlutterSDK\flutter • 框架修订e6b34c2b5c(11天前),2020-05-02 11:39:18 -0700 • 引擎修订版 540786dd51 • Dart 版本 2.8.1
[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3) • C:\Users\richa\AppData\Local\Android\sdk 中的 Android SDK • 平台 android-29,构建工具 28.0.3 • Java 二进制文件位于:C:\Program Files\Android\Android Studio\jre\bin\java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586-b04) • 接受所有 Android 许可证。
[√] Android Studio(3.6版) • C:\Program Files\Android\Android Studio 中的 Android Studio • Flutter 插件版本 44.0.2 • Dart 插件版本 192.7761 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586-b04)
[√] VS 代码(版本 1.45.0) • C:\Users\richa\AppData\Local\Programs\Microsoft VS 代码中的 VS 代码 • Flutter 扩展版本 3.10.1
[√] 已连接设备(1 个可用) • SM J510UN • a29a4ea7 • android-arm • Android 6.0.1 (API 23)
• 未发现任何问题!
【问题讨论】:
【参考方案1】:这不是错误。当您进行毫秒转换时,您将失去使用微秒提供的更高精度。当您使用毫秒时,您将丢弃 DateTime
包含的所有额外微秒。
【讨论】:
@user13535406 这有意义吗?以上是关于在 Flutter 中为 DateTime 转换似乎无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:Firebase FieldValue.serverTimestamp() 到 DateTime 对象