Метод parse(CharSequence, DateTimeFormatter)
класса java.time.LocalDateTime
не принимает null
в качестве последовательности символов (первый параметр), поэтому вам нужно сделать явную null
-проверку и переписать возвращаемый результат вашей функции как
return if (dateEmailSent != null) LocalDateTime.parse(dateEmailSent, formatter) else null
(кстати, у вас не должно быть точек с запятой (;
))
Более того, тип возвращаемой функции как написано, не обнуляется, поэтому вы необходимо изменить его на LocalDateTime?
.
И, поскольку нет смысла создавать синтаксический анализатор / форматер, если он не будет использоваться в случае, если dateEmailSent
будет null
, я предлагаю перепишите всю функцию следующим образом:
fun timeFormatted(dateEmailSent: String?) = if (dateEmailSent != null) {
LocalDateTime.parse(dateEmailSent, DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"))
} else null
Последняя часть остается за вами, а остальная часть в значительной степени обязательна, если вы хотите реализовать функциональность, описанную в вашем вопросе.