Skip to content

Commit 1ebe88c

Browse files
committed
Add non-nullable iso date converter.
1 parent 2c60372 commit 1ebe88c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

lib/src/api/converters.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,24 @@ class DateTimeISO8601NullableConverter
2424
}
2525
}
2626

27+
/// Converts [DateTime]? to and from ISO 8601 [String]
28+
class DateTimeISO8601Converter extends JsonConverter<DateTime, String> {
29+
/// Creates a new instance of [DateTimeISO8601Converter].
30+
const DateTimeISO8601Converter();
31+
32+
@override
33+
DateTime fromJson(String json) => deserialize(json);
34+
35+
@override
36+
String toJson(DateTime object) => serialize(object);
37+
38+
/// Serializes [DateTime] to [int].
39+
static String serialize(DateTime object) => object.toIso8601String();
40+
41+
/// Deserializes [int] to [DateTime].
42+
static DateTime deserialize(String json) => DateTime.parse(json);
43+
}
44+
2745
/// Top level converter for serializing [DateTime] to [millisecondsSinceEpoch].
2846
class DateTimeConverter extends JsonConverter<DateTime, int?> {
2947
/// Creates a new instance of [DateTimeConverter].

0 commit comments

Comments
 (0)