android - LocalDate to string format with HH:mm - Stack Overflow

I have a Kotlin code that retrives date (in text field) from SQLite DB and put it into a LocalDate vari

I have a Kotlin code that retrives date (in text field) from SQLite DB and put it into a LocalDate variable (pill.startDay) from whom I show the date as below

val dtf: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu", Locale.ITALY)
val startDayStr: String =dtf.format(pill.startDay)
holder.tvStartDate.text = "Start: $startDayStr"

Now I need to show also hours and minutes but I've tryed many patterns (like "dd/MM/uuuu HH:mm" or "dd/MM/uuuu'T'HH:mm" or "dd/MM/uuuu HH:mm z") without success (the app always crashes)

The full data class is:

data class Pill(val id: Int,
                val pillName: String,
                val yesDays: Int,
                val pauseDays: Int = 0,
                val startDay: LocalDate = LocalDate.now())

The error is:

FATAL EXCEPTION: main Process: com.example.mytestapp, PID: 24087 java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay

I have a Kotlin code that retrives date (in text field) from SQLite DB and put it into a LocalDate variable (pill.startDay) from whom I show the date as below

val dtf: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu", Locale.ITALY)
val startDayStr: String =dtf.format(pill.startDay)
holder.tvStartDate.text = "Start: $startDayStr"

Now I need to show also hours and minutes but I've tryed many patterns (like "dd/MM/uuuu HH:mm" or "dd/MM/uuuu'T'HH:mm" or "dd/MM/uuuu HH:mm z") without success (the app always crashes)

The full data class is:

data class Pill(val id: Int,
                val pillName: String,
                val yesDays: Int,
                val pauseDays: Int = 0,
                val startDay: LocalDate = LocalDate.now())

The error is:

FATAL EXCEPTION: main Process: com.example.mytestapp, PID: 24087 java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay

Share Improve this question edited Nov 16, 2024 at 11:50 genespos asked Nov 16, 2024 at 11:34 genesposgenespos 3,3116 gold badges43 silver badges76 bronze badges 2
  • Please share the stacktrace from the crash. – tyg Commented Nov 16, 2024 at 11:37
  • Also, what type is pill.startDay? Fully qualified, please. – tyg Commented Nov 16, 2024 at 11:38
Add a comment  | 

2 Answers 2

Reset to default 4

You are getting UnsupportedTemporalTypeException because you have defined your data with LocalDate. LocalDate doesn't have any information about the time and once you are trying to convert it to time, it causes a crash.

You need to update your data class Pill to have LocalDateTime instead of LocalDate:

data class Pill(
    val id: Int,
    val pillName: String,
    val yesDays: Int,
    val pauseDays: Int = 0,
    val startDay: LocalDateTime = LocalDateTime.now()
)

The reason you cannot print hours of day, minutes of hour and further down the scala is that a LocalDate exclusively stores information about day of month, month of year and year.

What you need seems to be a LocalDateTime, which is combined from a LocalDate and a LocalTime.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745659149a4638729.html

相关推荐

  • android - LocalDate to string format with HH:mm - Stack Overflow

    I have a Kotlin code that retrives date (in text field) from SQLite DB and put it into a LocalDate vari

    10小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信