From f67b72579aeb17736620164ffad0e14d4b78b463 Mon Sep 17 00:00:00 2001 From: Mert Buran Date: Mon, 4 May 2020 19:32:27 +0200 Subject: [PATCH] RUMM-437 Encoding doesn't ignore miliseconds anymore --- Sources/Datadog/Core/Persistence/FileWriter.swift | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Sources/Datadog/Core/Persistence/FileWriter.swift b/Sources/Datadog/Core/Persistence/FileWriter.swift index cd5f5114d5..be56a9dd51 100644 --- a/Sources/Datadog/Core/Persistence/FileWriter.swift +++ b/Sources/Datadog/Core/Persistence/FileWriter.swift @@ -20,7 +20,19 @@ internal final class FileWriter { self.orchestrator = orchestrator self.queue = queue self.jsonEncoder = JSONEncoder() - jsonEncoder.dateEncodingStrategy = .iso8601 + + let iso8601Formatter: DateFormatter = { + // TODO: RUMM-437 Find a way to test encoded values + // Taken from https://useyourloaf.com/blog/swift-codable-with-custom-dates/ + let formatter = DateFormatter() + formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" + formatter.calendar = Calendar(identifier: .iso8601) + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.locale = Locale(identifier: "en_US_POSIX") + return formatter + }() + jsonEncoder.dateEncodingStrategy = .formatted(iso8601Formatter) + if #available(iOS 13.0, OSX 10.15, *) { jsonEncoder.outputFormatting = [.withoutEscapingSlashes] }