【问题标题】:Android SimpleDateFormat always returns wrong week dayAndroid SimpleDateFormat 总是返回错误的工作日
【发布时间】:2026-01-28 15:10:01
【问题描述】:

我有以下代码:

String s = "08-12-2014 05:00:00"
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",  Locale.ENGLISH);
SimpleDateFormat outputFormat = new SimpleDateFormat("EEEE, HH:mm  a");
Date oneWayTripDate = null;
try {
    oneWayTripDate = inputFormat.parse(s);
} catch (ParseException e) {
    e.printStackTrace();
}
String datetime = outputFormat.format(oneWayTripDate);

但由于某些奇怪的原因,它总是返回错误的星期几。我做错了什么?

【问题讨论】:

  • 你希望"yyyy-MM-dd HH:mm:ss"如何解析"08-12-2014 05:00:00"?模式不匹配。
  • 12 是一个月还是一天?
  • 该代码不可能工作。尝试解析您使用inputFormat.parse(s) 显示的String s 将抛出ParseException

标签: java android timestamp simpledateformat android-calendar


【解决方案1】:

输入的SimpleDateFormat 模式错误。给定日期08-12-2014 05:00:00 以年份结尾,并假设08 是月份,格式应为:

SimpleDateFormat inputFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss", Locale.ENGLISH);

请参阅SimpleDateFormat 的 Javadoc,了解如何定义日期模式。

【讨论】: