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

Kotlin使用SimpleDateFormat转换日期输出异常如何解决?

你代码的核心问题是SimpleDateFormat的模式字符串配置错误,具体错误和修正方案如下:

具体错误点

  • 大写Y对应的是周年(该周所属的年份),并非你需要的公历年,公历年需要使用小写y
  • 大写D对应的是一年中的第几天,并非你需要的当月日期,当月日期需要使用小写d
  • 目标格式未指定Locale,在非英文环境下可能出现非预期的格式输出

修正后代码

import java.util.Scanner
import java.text.SimpleDateFormat
import java.util.Locale

fun main(){
    val scan = Scanner(System.`in`)
    val originalFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
    val targetFormat = SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH)
    val date = originalFormat.parse(scan.next())
    println(targetFormat.format(date))
}

额外提示

旧的SimpleDateFormat属于线程不安全类,不建议在多线程场景下复用实例。如果是JDK8及以上环境,更推荐使用java.time包下的DateTimeFormatter做日期转换,性能和安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:54:01