You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala DateTime格式化报错“text could not be parsed at index 0”

问题原因
  • 核心原因是你定义的DateTimeFormatter模式和实际待解析的字符串格式完全不匹配:
    • 你写的模式dd/MM/yyyy HH:mm:ss仅能匹配类似20/09/2021 15:57:56的字符串,不包含星期、月份缩写、时区字段
    • 实际待解析的字符串Mon Sep 20 15:57:56 BST 2021属于包含英文星期、月份缩写、时区标识的格式,对应模式为EEE MMM dd HH:mm:ss z yyyy
  • 额外注意:因为字符串里的星期、月份都是英文缩写,创建DateTimeFormatter时必须指定英文Locale,否则默认Locale为中文的环境下依然会解析失败
解决代码
import java.time.format.DateTimeFormatter
import java.util.Locale
import java.time.ZonedDateTime

val timeString = "Mon Sep 20 15:57:56 BST 2021"
// 指定英文Locale保证英文缩写能正常识别
val formatFinal = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.US)
// 解析为带时区的时间对象
val zonedDateTime = ZonedDateTime.parse(timeString, formatFinal)
// 转毫秒级时间戳
val timestamp = zonedDateTime.toInstant.toEpochMilli
// 如果需要转成你预期的dd/MM/yyyy HH:mm:ss格式字符串可额外转换
val targetFormatStr = zonedDateTime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"))
验证说明

上述代码运行后得到的时间戳对应时间为2021-09-20T15:57:56+01:00[Europe/London],和原始字符串含义完全一致。

内容的提问来源于stack exchange,提问作者lr53

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:36:05