From 6c59f3423deb563beff05db79aced8a8237eab74 Mon Sep 17 00:00:00 2001 From: kollstrom Date: Tue, 29 Oct 2019 20:03:18 +0100 Subject: [PATCH 1/4] Rename folder from java -> kotlin Kotlin project files should be in a folder named kotlin, not java --- .../main/{java => kotlin}/com/parassidhu/simpledate/SimpleDate.kt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpledate/src/main/{java => kotlin}/com/parassidhu/simpledate/SimpleDate.kt (100%) diff --git a/simpledate/src/main/java/com/parassidhu/simpledate/SimpleDate.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt similarity index 100% rename from simpledate/src/main/java/com/parassidhu/simpledate/SimpleDate.kt rename to simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt From 74d8293cf4bf285810ff563c3815145e9bd549e8 Mon Sep 17 00:00:00 2001 From: kollstrom Date: Tue, 29 Oct 2019 20:07:52 +0100 Subject: [PATCH 2/4] Split methods into separate files The mono file was getting too big. The methods were split into these logical units: - Date - DateTime - Day - Time --- .../kotlin/com/parassidhu/simpledate/Date.kt | 63 +++++++ .../com/parassidhu/simpledate/DateTime.kt | 69 ++++++++ .../kotlin/com/parassidhu/simpledate/Day.kt | 8 + .../com/parassidhu/simpledate/SimpleDate.kt | 161 +----------------- .../kotlin/com/parassidhu/simpledate/Time.kt | 23 +++ 5 files changed, 164 insertions(+), 160 deletions(-) create mode 100644 simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt create mode 100644 simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt create mode 100644 simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt create mode 100644 simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt new file mode 100644 index 0000000..8cedfc4 --- /dev/null +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt @@ -0,0 +1,63 @@ +package com.parassidhu.simpledate + +import java.util.* + +fun Date?.toDateStandard(): String { + val pattern = "dd MMMM YYYY" + return dateAsString(this, pattern) +} + +fun Date?.toDateStandardConcise(): String { + val pattern = "dd MMM yyyy" + return dateAsString(this, pattern) +} + +fun Date?.toDateStandardInDigits(): String { + val pattern = "dd-MM-yyyy" + return dateAsString(this, pattern) +} + +fun Date?.toDateYY(): String { + val pattern = "dd MMMM yy" + return dateAsString(this, pattern) +} + +fun Date?.toDateYYConcise(): String { + val pattern = "dd MMM yy" + return dateAsString(this, pattern) +} + +fun Date?.toDateYYInDigits(): String { + val pattern = "dd-MM-yy" + return dateAsString(this, pattern) +} + +fun Date?.toDateYMD(): String { + val pattern = "yyyy MMMM dd" + return dateAsString(this, pattern) +} + +fun Date?.toDateYMDConcise(): String { + val pattern = "yyyy MMM dd" + return dateAsString(this, pattern) +} + +fun Date?.toDateYMDInDigits(): String { + val pattern = "yyyy-MM-dd" + return dateAsString(this, pattern) +} + +fun Date?.toDateEMd(): String { + val pattern = "EEE, MMM dd" + return dateAsString(this, pattern) +} + +fun Date?.toDateEMYShort(): String { + val pattern = "EEE, MMM YY" + return dateAsString(this, pattern) +} + +fun Date?.toDateEMY(): String { + val pattern = "EEEE, MMMM YYYY" + return dateAsString(this, pattern) +} \ No newline at end of file diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt new file mode 100644 index 0000000..220957d --- /dev/null +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt @@ -0,0 +1,69 @@ +package com.parassidhu.simpledate + +import java.util.* + +fun Date?.toDateTimeStandard(): String { + val pattern = "dd MMMM yyyy HH:mm:ss" + + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeStandardIn12Hours(): String { + val pattern = "dd MMMM yyyy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeStandardInDigits(): String { + val pattern = "dd-MM-yyyy HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeStandardInDigitsAnd12Hours(): String { + val pattern = "dd-MM-yyyy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeStandardConcise(): String { + val pattern = "dd MMM yyyy HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeStandardConciseIn12Hours(): String { + val pattern = "dd MMM yyyy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYY(): String { + val pattern = "dd MMMM yy HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYYIn12Hours(): String { + val pattern = "dd MMMM yy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYYInDigits(): String { + val pattern = "dd-MM-yy HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYYInDigitsAnd12Hours(): String { + val pattern = "dd-MM-yy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYYConcise(): String { + val pattern = "dd MMM yy HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toDateTimeYYConciseIn12Hours(): String { + val pattern = "dd MMM yy h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toZuluFormat(): String { + val pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" + return dateAsString(this, pattern) +} \ No newline at end of file diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt new file mode 100644 index 0000000..50041e1 --- /dev/null +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt @@ -0,0 +1,8 @@ +package com.parassidhu.simpledate + +import java.util.* + +fun Date?.toDay(): String { + val pattern = "EEEE" + return dateAsString(this, pattern) +} \ No newline at end of file diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt index bb8c056..ca92ce5 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt @@ -43,166 +43,7 @@ private lateinit var simpleDateFormat: SimpleDateFormat println(date.toDay()) }*/ -// -------------------------- DateTime -------------------------- - -fun Date?.toDateTimeStandard(): String { - val pattern = "dd MMMM yyyy HH:mm:ss" - - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeStandardIn12Hours(): String { - val pattern = "dd MMMM yyyy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeStandardInDigits(): String { - val pattern = "dd-MM-yyyy HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeStandardInDigitsAnd12Hours(): String { - val pattern = "dd-MM-yyyy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeStandardConcise(): String { - val pattern = "dd MMM yyyy HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeStandardConciseIn12Hours(): String { - val pattern = "dd MMM yyyy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYY(): String { - val pattern = "dd MMMM yy HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYYIn12Hours(): String { - val pattern = "dd MMMM yy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYYInDigits(): String { - val pattern = "dd-MM-yy HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYYInDigitsAnd12Hours(): String { - val pattern = "dd-MM-yy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYYConcise(): String { - val pattern = "dd MMM yy HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toDateTimeYYConciseIn12Hours(): String { - val pattern = "dd MMM yy h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toZuluFormat(): String { - val pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" - return dateAsString(this, pattern) -} -// -------------------------- Time -------------------------- - -fun Date?.toTimeStandard(): String { - val pattern = "HH:mm:ss" - return dateAsString(this, pattern) -} - -fun Date?.toTimeStandardWithoutSeconds(): String { - val pattern = "HH:mm" - return dateAsString(this, pattern) -} - -fun Date?.toTimeStandardIn12Hours(): String { - val pattern = "h:mm:ss a" - return dateAsString(this, pattern) -} - -fun Date?.toTimeStandardIn12HoursWithoutSeconds(): String { - val pattern = "h:mm a" - return dateAsString(this, pattern) -} - -// -------------------------- Date -------------------------- - -fun Date?.toDateStandard(): String { - val pattern = "dd MMMM YYYY" - return dateAsString(this, pattern) -} - -fun Date?.toDateStandardConcise(): String { - val pattern = "dd MMM yyyy" - return dateAsString(this, pattern) -} - -fun Date?.toDateStandardInDigits(): String { - val pattern = "dd-MM-yyyy" - return dateAsString(this, pattern) -} - -fun Date?.toDateYY(): String { - val pattern = "dd MMMM yy" - return dateAsString(this, pattern) -} - -fun Date?.toDateYYConcise(): String { - val pattern = "dd MMM yy" - return dateAsString(this, pattern) -} - -fun Date?.toDateYYInDigits(): String { - val pattern = "dd-MM-yy" - return dateAsString(this, pattern) -} - -fun Date?.toDateYMD(): String { - val pattern = "yyyy MMMM dd" - return dateAsString(this, pattern) -} - -fun Date?.toDateYMDConcise(): String { - val pattern = "yyyy MMM dd" - return dateAsString(this, pattern) -} - -fun Date?.toDateYMDInDigits(): String { - val pattern = "yyyy-MM-dd" - return dateAsString(this, pattern) -} - -fun Date?.toDateEMd(): String { - val pattern = "EEE, MMM dd" - return dateAsString(this, pattern) -} - -fun Date?.toDateEMYShort(): String { - val pattern = "EEE, MMM YY" - return dateAsString(this, pattern) -} - -fun Date?.toDateEMY(): String { - val pattern = "EEEE, MMMM YYYY" - return dateAsString(this, pattern) -} - -// -------------------------- Day -------------------------- - -fun Date?.toDay(): String { - val pattern = "EEEE" - return dateAsString(this, pattern) -} -// --------------------------------------------------------- - -private fun dateAsString(date: Date?, pattern: String): String { +internal fun dateAsString(date: Date?, pattern: String): String { simpleDateFormat = SimpleDateFormat(pattern, Locale.getDefault()) if (date != null) return simpleDateFormat.format(date) diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt new file mode 100644 index 0000000..0534069 --- /dev/null +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt @@ -0,0 +1,23 @@ +package com.parassidhu.simpledate + +import java.util.* + +fun Date?.toTimeStandard(): String { + val pattern = "HH:mm:ss" + return dateAsString(this, pattern) +} + +fun Date?.toTimeStandardWithoutSeconds(): String { + val pattern = "HH:mm" + return dateAsString(this, pattern) +} + +fun Date?.toTimeStandardIn12Hours(): String { + val pattern = "h:mm:ss a" + return dateAsString(this, pattern) +} + +fun Date?.toTimeStandardIn12HoursWithoutSeconds(): String { + val pattern = "h:mm a" + return dateAsString(this, pattern) +} \ No newline at end of file From 60fe75b143cd5437b8ac49c8270d5b3ae9c3d78a Mon Sep 17 00:00:00 2001 From: kollstrom Date: Wed, 30 Oct 2019 12:55:32 +0100 Subject: [PATCH 3/4] Change from SimpleDateKt -> SimpleDate usage from jvm Previously Java users would write SimpleDateKt.toDateTimeStandard(new Date()). This commit removes the Kt postfix of the generated class name. --- simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt | 4 ++++ .../src/main/kotlin/com/parassidhu/simpledate/DateTime.kt | 3 +++ simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt | 3 +++ .../src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt | 3 +++ simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt | 3 +++ 5 files changed, 16 insertions(+) diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt index 8cedfc4..13cdade 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Date.kt @@ -1,7 +1,11 @@ +@file:JvmMultifileClass +@file:JvmName("SimpleDate") + package com.parassidhu.simpledate import java.util.* + fun Date?.toDateStandard(): String { val pattern = "dd MMMM YYYY" return dateAsString(this, pattern) diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt index 220957d..54a988d 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/DateTime.kt @@ -1,3 +1,6 @@ +@file:JvmMultifileClass +@file:JvmName("SimpleDate") + package com.parassidhu.simpledate import java.util.* diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt index 50041e1..4931827 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Day.kt @@ -1,3 +1,6 @@ +@file:JvmMultifileClass +@file:JvmName("SimpleDate") + package com.parassidhu.simpledate import java.util.* diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt index ca92ce5..3015fec 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt @@ -1,3 +1,6 @@ +@file:JvmMultifileClass +@file:JvmName("SimpleDate") + package com.parassidhu.simpledate import java.text.SimpleDateFormat diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt index 0534069..7df0a22 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/Time.kt @@ -1,3 +1,6 @@ +@file:JvmMultifileClass +@file:JvmName("SimpleDate") + package com.parassidhu.simpledate import java.util.* From 55069729e5a751f45343655c80f64b7816b2cba8 Mon Sep 17 00:00:00 2001 From: kollstrom Date: Wed, 30 Oct 2019 12:58:02 +0100 Subject: [PATCH 4/4] Remove out-commented printline block The print lines looks like something that maybe should be moved to unit tests. --- .../com/parassidhu/simpledate/SimpleDate.kt | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt index 3015fec..4d84fb5 100644 --- a/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt +++ b/simpledate/src/main/kotlin/com/parassidhu/simpledate/SimpleDate.kt @@ -8,44 +8,6 @@ import java.util.* private lateinit var simpleDateFormat: SimpleDateFormat -/*fun main() { - val date = Date() - - println(date.toDateTimeStandard()) - println(date.toDateTimeStandardIn12Hours()) - println(date.toDateTimeStandardInDigits()) - println(date.toDateTimeStandardInDigitsAnd12Hours()) - println(date.toDateTimeStandardConcise()) - println(date.toDateTimeStandardConciseIn12Hours()) - println(date.toDateTimeYY()) - println(date.toDateTimeYYIn12Hours()) - println(date.toDateTimeYYInDigits()) - println(date.toDateTimeYYInDigitsAnd12Hours()) - println(date.toDateTimeYYConcise()) - println(date.toDateTimeYYConciseIn12Hours()) - println(date.toZuluFormat()) - println("-----------------------------------------") - println(date.toTimeStandard()) - println(date.toTimeStandardWithoutSeconds()) - println(date.toTimeStandardIn12Hours()) - println(date.toTimeStandardIn12HoursWithoutSeconds()) - println("-----------------------------------------") - println(date.toDateStandard()) - println(date.toDateStandardConcise()) - println(date.toDateStandardInDigits()) - println(date.toDateYY()) - println(date.toDateYYConcise()) - println(date.toDateYYInDigits()) - println(date.toDateYMD()) - println(date.toDateYMDConcise()) - println(date.toDateYMDInDigits()) - println(date.toDateEMd()) - println(date.toDateEMYShort()) - println(date.toDateEMY()) - println("-----------------------------------------") - println(date.toDay()) -}*/ - internal fun dateAsString(date: Date?, pattern: String): String { simpleDateFormat = SimpleDateFormat(pattern, Locale.getDefault()) if (date != null)