var timelong = "2023:07:14 18:24:48" val index = timelong.indexOf(' ') if (index != -1) { val substring = timelong.substring(0, index) val formatter = DateTimeFormatter.ofPattern("yyyy:MM:dd") val dateTime = LocalDateTime.parse(substring, formatter) val timestamp = dateTime.toEpochSecond(ZoneOffset.UTC) return timestamp }这样写正确那
时间: 2024-02-10 13:27:33 浏览: 92
您的代码基本上是正确的,可以将格式化后的日期字符串截取到年月日部分,并将其转换为 `Long` 类型的时间戳。以下是您提供的代码的一些小修改:
```kotlin
val timelong = "2023:07:14 18:24:48"
val index = timelong.indexOf(' ')
if (index != -1) {
val substring = timelong.substring(0, index)
val formatter = DateTimeFormatter.ofPattern("yyyy:MM:dd")
val dateTime = LocalDate.parse(substring, formatter).atStartOfDay()
val timestamp = dateTime.toEpochSecond(ZoneOffset.UTC)
return timestamp
}
```
在您的代码中,我们进行了一些调整:
1. 将 `substring` 变量的类型更改为 `LocalDate`,因为我们只需要年月日部分。
2. 使用 `atStartOfDay()` 方法将 `LocalDate` 转换为 `LocalDateTime`,以便后续可以使用 `toEpochSecond()` 方法。
3. 返回时间戳 `timestamp`。
请注意,上述代码仅处理了格式化后的日期字符串中的年月日部分,并将其转换为时间戳。如果您还需要处理时间部分(时、分、秒),您需要相应地修改代码。
阅读全文