|
|
@@ -6,12 +6,31 @@ import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.flow.channelFlow
|
|
|
import kotlinx.coroutines.launch
|
|
|
import kotlinx.datetime.Clock
|
|
|
-import kotlinx.datetime.toLocalDate
|
|
|
+import kotlinx.datetime.Instant
|
|
|
import kotlinx.datetime.toLocalDateTime
|
|
|
-import kotlinx.datetime.toLocalTime
|
|
|
+import kotlinx.datetime.TimeZone
|
|
|
+import kotlinx.datetime.TimeZone.Companion.currentSystemDefault
|
|
|
|
|
|
object CustomExt {
|
|
|
|
|
|
+ // todo
|
|
|
+ fun Instant.formatDate(): String {
|
|
|
+ val localDateTime = this.toLocalDateTime(currentSystemDefault())
|
|
|
+ val day = localDateTime.date.dayOfMonth.toString().padStart(2, '0')
|
|
|
+ val month = localDateTime.date.monthNumber.toString().padStart(2, '0')
|
|
|
+ val year = localDateTime.date.year.toString()
|
|
|
+ return "$day.$month.$year"
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo
|
|
|
+ fun Instant.formatTime(): String {
|
|
|
+ val localDateTime = this.toLocalDateTime(TimeZone.currentSystemDefault())
|
|
|
+ val hours = localDateTime.hour.toString().padStart(2, '0')
|
|
|
+ val minutes = localDateTime.minute.toString().padStart(2, '0')
|
|
|
+ val seconds = localDateTime.second.toString().padStart(2, '0')
|
|
|
+ return "$hours:$minutes:$seconds"
|
|
|
+ }
|
|
|
+
|
|
|
val dateFlow
|
|
|
@Composable
|
|
|
get() = channelFlow {
|
|
|
@@ -19,7 +38,7 @@ object CustomExt {
|
|
|
var date = "1.1.1970"
|
|
|
do {
|
|
|
// todo
|
|
|
- Clock.System.now().toString().also { t ->
|
|
|
+ Clock.System.now().formatDate().also { t ->
|
|
|
if (date != t) {
|
|
|
date = t
|
|
|
send(date)
|
|
|
@@ -36,8 +55,7 @@ object CustomExt {
|
|
|
launch {
|
|
|
var time = "00:00:00"
|
|
|
do {
|
|
|
- // todo
|
|
|
- Clock.System.now().toString().also { t ->
|
|
|
+ Clock.System.now().formatTime().also { t ->
|
|
|
if (time != t) {
|
|
|
time = t
|
|
|
send(time)
|