Reputation: 1
converting with milliseconds differs from the original after conversion. Microsecond conversion works fine.
Testcode:
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");
Output:
I/flutter (26574): ---Milliseconds:
I/flutter (26574): Datetime: 2020-05-13 18:40:12.675351 <----- not equal among each other !!!
I/flutter (26574): Milliseconds: 1589388012675
I/flutter (26574): DateTimeEnd: 2020-05-13 18:40:12.675 <----- not equal among each other !!!
I/flutter (26574): ---Microseconds:
I/flutter (26574): Datetime: 2020-05-13 18:40:12.675351 <----- equal
I/flutter (26574): Microseconds: 1589388012675351
I/flutter (26574): DateTimeEnd2: 2020-05-13 18:40:12.675351 <----- equal
Or do I have a bug somewhere?
flutter doctor -v [√] Flutter (Channel stable, v1.17.0, on Microsoft Windows [Version 10.0.18362.836], locale de-DE) • Flutter version 1.17.0 at C:\AndroidStudio\FlutterSDK\flutter • Framework revision e6b34c2b5c (11 days ago), 2020-05-02 11:39:18 -0700 • Engine revision 540786dd51 • Dart version 2.8.1
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\richa\AppData\Local\Android\sdk
• Platform android-29, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
• All Android licenses accepted.
[√] Android Studio (version 3.6) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin version 44.0.2 • Dart plugin version 192.7761 • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] VS Code (version 1.45.0) • VS Code at C:\Users\richa\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.10.1
[√] Connected device (1 available) • SM J510UN • a29a4ea7 • android-arm • Android 6.0.1 (API 23)
• No issues found!
Upvotes: 0
Views: 409
Reputation: 17141
This is not a bug. When you do millisecond conversion you are losing the greater precision that using microseconds provides. You're dropping all of the additional microseconds that the DateTime
contains when you use milliseconds.
Upvotes: 1