From 6528a4410452e7b0abd096340549ed100d0517e6 Mon Sep 17 00:00:00 2001 From: xuty <xty50337@hotmail.com> Date: Sat, 14 Aug 2021 00:29:23 +0000 Subject: [PATCH] use rfc7231 time in CopyConditions --- lib/src/minio_models.dart | 5 +++-- lib/src/utils.dart | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/src/minio_models.dart b/lib/src/minio_models.dart index 3b9cc58..801ca1d 100644 --- a/lib/src/minio_models.dart +++ b/lib/src/minio_models.dart @@ -1,5 +1,6 @@ import 'package:minio/models.dart'; import 'package:minio/src/minio_errors.dart'; +import 'package:minio/src/utils.dart'; import 'package:xml/xml.dart'; import '../models.dart'; @@ -91,11 +92,11 @@ class CopyConditions { String? matchETagExcept; void setModified(DateTime date) { - modified = date.toUtc().toIso8601String(); + modified = toRfc7231Time(date.toUtc()); } void setUnmodified(DateTime date) { - unmodified = date.toUtc().toIso8601String(); + unmodified = toRfc7231Time(date.toUtc()); } void setMatchETag(String etag) { diff --git a/lib/src/utils.dart b/lib/src/utils.dart index 8ae8e00..67fdde0 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -91,8 +91,15 @@ String trimDoubleQuote(String str) { } DateTime parseRfc7231Time(String time) { - final format = DateFormat('EEE, dd MMM yyyy hh:mm:ss zzz'); - return format.parse(time); + final format = DateFormat('EEE, dd MMM yyyy HH:mm:ss'); + final isUtc = time.endsWith('GMT'); + return format.parse(time, isUtc); +} + +String toRfc7231Time(DateTime time) { + final format = DateFormat('EEE, dd MMM yyyy HH:mm:ss'); + final result = format.format(time); + return time.isUtc ? result + ' GMT' : result; } List<List<T>> groupList<T>(List<T> list, int maxMembers) { -- GitLab