diff --git a/core/ui/src/main/java/com/mhss/app/ui/components/common/DateTimeDialog.kt b/core/ui/src/main/java/com/mhss/app/ui/components/common/DateTimeDialog.kt index 7568df39..65a31cf2 100644 --- a/core/ui/src/main/java/com/mhss/app/ui/components/common/DateTimeDialog.kt +++ b/core/ui/src/main/java/com/mhss/app/ui/components/common/DateTimeDialog.kt @@ -28,6 +28,7 @@ import com.mhss.app.ui.R import com.mhss.app.util.date.at import com.mhss.app.util.date.hour import com.mhss.app.util.date.minute +import com.mhss.app.util.date.utcDateAt @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -54,7 +55,7 @@ fun DateTimeDialog( onClick = { if (showTime) { onDatePicked( - datePickerState.selectedDateMillis?.at( + datePickerState.selectedDateMillis?.utcDateAt( timePickerState.hour, timePickerState.minute ) ?: initialDate @@ -108,7 +109,7 @@ fun DateDialog( TextButton( onClick = { onDatePicked( - datePickerState.selectedDateMillis?.at( + datePickerState.selectedDateMillis?.utcDateAt( initialDate.hour, initialDate.minute ) ?: initialDate diff --git a/core/util/src/main/java/com/mhss/app/util/date/DateUtils.kt b/core/util/src/main/java/com/mhss/app/util/date/DateUtils.kt index 06309e2b..8291b4ee 100644 --- a/core/util/src/main/java/com/mhss/app/util/date/DateUtils.kt +++ b/core/util/src/main/java/com/mhss/app/util/date/DateUtils.kt @@ -199,6 +199,19 @@ fun Long.at(hours: Int, minutes: Int): Long { ).toInstant(TimeZone.currentSystemDefault()).toEpochMilliseconds() } +fun Long.utcDateAt(hours: Int, minutes: Int): Long { + val date = Instant.fromEpochMilliseconds(this).toLocalDateTime(TimeZone.UTC).date + return LocalDateTime( + year = date.year, + month = date.month, + day = date.day, + hour = hours, + minute = minutes, + second = 0, + nanosecond = 0 + ).toInstant(TimeZone.currentSystemDefault()).toEpochMilliseconds() +} + fun Long.toDayOfWeek(): DayOfWeek { return Instant .fromEpochMilliseconds(this)