java - 为什么 new java.text.SimpleDateFormat ("EEEE").format(new java.util.Date(2015, 6, 9)) 返回错误的星期几?

标签 java date simpledateformat

我想从 Java 中的 date 获取星期几。为什么这会返回 Frid​​ay 而实际上是 Tuesday

new java.text.SimpleDateFormat("EEEE").format(new java.util.Date(2015, 6, 9))

PS 我知道 java.util.Date(int year, int month, int day) 已被弃用,也许这与它有关。

最佳答案

该已弃用的构造函数中的 month 参数从 0 开始表示一月,因此您可能需要 new Date(115, 5, 9)如果您谈论的是 6 月 9 日(115 是因为 year 参数是“自 1900 年以来”)。

来自 the documentation :

Parameters:

year - the year minus 1900.

month - the month between 0-11.

date - the day of the month between 1-31.

(我的重点。)

您曾说过您想将其作为单行程序来执行此操作。在 Java 8 中,您可以:

String day = LocalDate.of(2015, 6, 9).format(DateTimeFormatter.ofPattern("EEEE"));

使用java.time.LocalDatejava.time.format.DateTimeFormatter .

关于java - 为什么 new java.text.SimpleDateFormat ("EEEE").format(new java.util.Date(2015, 6, 9)) 返回错误的星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735244/

相关文章:

python - 当使用列表找到某个值时,从行中提取多个值

java - 多个数据输入/输出流混淆

python - 按月份名称对 pandas 数据框系列进行排序

java - 什么更有效率?使用 Regex 或在 mysql 中创建新列以获取相同信息

java - LocalDate.toDate( ) 返回不准确的日期

java - 无法解析的日期异常 SimpleDateFormat

java - Android SimpleDateFormat 无法解析的日期

java - 将日历java中的月份字符生成到变量中

java - Android 中的错误 HTTP 422 GET

java - 如何用 Java 写入 ssh 的标准输入?