From 9742d93e838a15ec6551966a0b3104b7d07a039e Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Thu, 24 Jun 2021 08:59:02 -0400 Subject: [PATCH 1/3] Use ISO 8601 date formatting Update TasksJsonExporter and the default toString() method in DateTime to use the ISO 8601 standard (in particular, using four-digit years and splitting the date from the time with the character "T"). --- app/src/main/java/org/tasks/backup/TasksJsonExporter.kt | 2 +- app/src/main/java/org/tasks/time/DateTime.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/tasks/backup/TasksJsonExporter.kt b/app/src/main/java/org/tasks/backup/TasksJsonExporter.kt index 2f15f4634..728379acd 100755 --- a/app/src/main/java/org/tasks/backup/TasksJsonExporter.kt +++ b/app/src/main/java/org/tasks/backup/TasksJsonExporter.kt @@ -169,6 +169,6 @@ class TasksJsonExporter @Inject constructor( private const val MIME = "application/json" private const val EXTENSION = ".json" private val dateForExport: String - get() = newDateTime().toString("yyMMdd-HHmm") + get() = newDateTime().toString("yyyyMMdd'T'HHmm") } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/time/DateTime.java b/app/src/main/java/org/tasks/time/DateTime.java index c72364741..660a3bd8f 100644 --- a/app/src/main/java/org/tasks/time/DateTime.java +++ b/app/src/main/java/org/tasks/time/DateTime.java @@ -429,6 +429,6 @@ public class DateTime { @Override public String toString() { - return toString("yyyy-MM-dd HH:mm:ss.SSSZ"); + return toString("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); } } From bc906090aa35eca4a4d034f3622cb7bf6dbee955 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Fri, 25 Jun 2021 07:51:10 -0400 Subject: [PATCH 2/3] Add ISO format to backup file matcher --- app/src/main/java/org/tasks/backup/BackupConstants.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/tasks/backup/BackupConstants.kt b/app/src/main/java/org/tasks/backup/BackupConstants.kt index 3058bad49..4ce8acd1b 100755 --- a/app/src/main/java/org/tasks/backup/BackupConstants.kt +++ b/app/src/main/java/org/tasks/backup/BackupConstants.kt @@ -10,7 +10,7 @@ object BackupConstants { const val EXPORT_FILE_NAME = "user.%s.json" const val BACKUP_FILE_NAME = "auto.%s.json" - private val MATCHER = Pattern.compile("""(auto|user)\.(\d{2})(\d{2})(\d{2})-(\d{2})(\d{2})\.json""") + private val MATCHER = Pattern.compile("""(auto|user)\.(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})\.json""") fun isBackupFile(name: String?) = name?.let { MATCHER.matcher(it).matches() } ?: false @@ -32,7 +32,7 @@ object BackupConstants { .takeIf { it.matches() } ?.let { DateTime( - 2000 + it.group(2)!!.toInt(), + it.group(2)!!.toInt(), it.group(3)!!.toInt(), it.group(4)!!.toInt(), it.group(5)!!.toInt(), From bd1101d73e60d0388c6e905f93b97cc39cfd8661 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sun, 12 Mar 2023 23:52:43 -0500 Subject: [PATCH 3/3] Add old filename to matcher --- .../java/org/tasks/backup/BackupConstants.kt | 4 +-- .../org/tasks/backup/BackupConstantsTest.kt | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/tasks/backup/BackupConstants.kt b/app/src/main/java/org/tasks/backup/BackupConstants.kt index 4ce8acd1b..8ea001e02 100755 --- a/app/src/main/java/org/tasks/backup/BackupConstants.kt +++ b/app/src/main/java/org/tasks/backup/BackupConstants.kt @@ -10,7 +10,7 @@ object BackupConstants { const val EXPORT_FILE_NAME = "user.%s.json" const val BACKUP_FILE_NAME = "auto.%s.json" - private val MATCHER = Pattern.compile("""(auto|user)\.(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})\.json""") + private val MATCHER = Pattern.compile("""(auto|user)\.(\d{2,4})(\d{2})(\d{2})[T-](\d{2})(\d{2})\.json""") fun isBackupFile(name: String?) = name?.let { MATCHER.matcher(it).matches() } ?: false @@ -32,7 +32,7 @@ object BackupConstants { .takeIf { it.matches() } ?.let { DateTime( - it.group(2)!!.toInt(), + it.group(2)!!.toInt().let { y -> if (y > 2000) y else y + 2000 }, it.group(3)!!.toInt(), it.group(4)!!.toInt(), it.group(5)!!.toInt(), diff --git a/app/src/test/java/org/tasks/backup/BackupConstantsTest.kt b/app/src/test/java/org/tasks/backup/BackupConstantsTest.kt index c40f1b0a3..9aa0f70fd 100644 --- a/app/src/test/java/org/tasks/backup/BackupConstantsTest.kt +++ b/app/src/test/java/org/tasks/backup/BackupConstantsTest.kt @@ -1,6 +1,8 @@ package org.tasks.backup -import org.junit.Assert.* +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue import org.junit.Test import org.tasks.time.DateTime @@ -21,7 +23,7 @@ class BackupConstantsTest { } @Test - fun getTimestampFromAutoBackup() { + fun getTimestampFromAutoBackupTwoDigits() { assertEquals( DateTime(2020, 9, 10, 15, 3).millis, BackupConstants.getTimestampFromFilename("auto.200910-1503.json") @@ -29,10 +31,26 @@ class BackupConstantsTest { } @Test - fun getTimestampFromUserBackup() { + fun getTimestampFromUserBackupTwoDigits() { assertEquals( DateTime(2020, 9, 10, 15, 3).millis, BackupConstants.getTimestampFromFilename("user.200910-1503.json") ) } -} \ No newline at end of file + + @Test + fun getTimestampFromAutoBackup() { + assertEquals( + DateTime(2020, 9, 10, 15, 3).millis, + BackupConstants.getTimestampFromFilename("auto.20200910T1503.json") + ) + } + + @Test + fun getTimestampFromUserBackup() { + assertEquals( + DateTime(2020, 9, 10, 15, 3).millis, + BackupConstants.getTimestampFromFilename("user.20200910T1503.json") + ) + } +}