如何在java中以不同语言(西班牙语)打印从sql日期算起的月份?

如何在java中以不同语言(西班牙语)打印从sql日期算起的月份?,java,sql,simpledateformat,Java,Sql,Simpledateformat,我可以用这些代码行用英语打印月份 但是我怎么能用西班牙语打印呢?我没有在(简单日期格式)的语言环境中找到任何西班牙语,它使用的DateFormat和java.util.Date已经过时。您应该(如果可能的话)使用最新的JSR-310 java日期/时间库和格式化程序,如DateTimeFormatter。下面是使用西班牙语(西班牙)语言环境的最近推荐的JSR-310 Java日期/时间库和最近的DateTimeFormatter的示例代码: 如果出于任何原因必须使用过时的旧库,则可以使用Simp

我可以用这些代码行用英语打印月份
但是我怎么能用西班牙语打印呢?我没有在(简单日期格式)的语言环境中找到任何西班牙语,它使用的
DateFormat
java.util.Date
已经过时。您应该(如果可能的话)使用最新的JSR-310 java日期/时间库和格式化程序,如
DateTimeFormatter
。下面是使用西班牙语(西班牙)语言环境的最近推荐的JSR-310 Java日期/时间库和最近的
DateTimeFormatter
的示例代码:

如果出于任何原因必须使用过时的旧库,则可以使用
SimpleDataFormat(字符串模式、区域设置)
。下面是在西班牙语(西班牙)地区使用
DateFormat
的示例代码:


它使用的
DateFormat
java.util.Date
已经过时。您应该(如果可能的话)使用最新的JSR-310 java日期/时间库和格式化程序,如
DateTimeFormatter
。下面是使用西班牙语(西班牙)语言环境的最近推荐的JSR-310 Java日期/时间库和最近的
DateTimeFormatter
的示例代码:

如果出于任何原因必须使用过时的旧库,则可以使用
SimpleDataFormat(字符串模式、区域设置)
。下面是在西班牙语(西班牙)地区使用
DateFormat
的示例代码:

JDBC4.2和java.time 或者在某个特定时区打印,因为月份在所有时区的同一时间点没有变化:

    ZonedDateTime zdt = dateTime.atZoneSameInstant(ZoneId.of("Europe/Madrid"));
    String monthString = zdt.format(monthFormatter);
避免使用SimpleDataFormat 您提到的
SimpleDateFormat
类是出了名的麻烦和过时。不要用它。现代java日期和时间API java.time非常好用

链接 解释如何使用java.time。

JDBC4.2和java.time 或者在某个特定时区打印,因为月份在所有时区的同一时间点没有变化:

    ZonedDateTime zdt = dateTime.atZoneSameInstant(ZoneId.of("Europe/Madrid"));
    String monthString = zdt.format(monthFormatter);
避免使用SimpleDataFormat 您提到的
SimpleDateFormat
类是出了名的麻烦和过时。不要用它。现代java日期和时间API java.time非常好用

链接
解释如何使用java.time。

Timestamp a=null;(从DB处获取该日期);DateFormat date=新的简单日期格式(“MMM d,yyyy h:mm a”);字符串b=日期.格式(a);Ene二月三月Abr五月六月七月前九月十月十一月显示您的代码!!我建议您不要使用
SimpleDateFormat
。那门课是出了名的麻烦和过时。请改为使用来自的
月份
和/或
日期时间格式
。感谢您展示您的代码。请将其添加到问题中,以便我们将所有内容放在一个位置,这样您就可以将其格式化为可读的格式。当在注释中发布代码时,代码往往不可读;(从DB处获取该日期);DateFormat date=新的简单日期格式(“MMM d,yyyy h:mm a”);字符串b=日期.格式(a);Ene二月三月Abr五月六月七月前九月十月十一月显示您的代码!!我建议您不要使用
SimpleDateFormat
。那门课是出了名的麻烦和过时。请改为使用来自的
月份
和/或
日期时间格式
。感谢您展示您的代码。请将其添加到问题中,以便我们将所有内容放在一个位置,这样您就可以将其格式化为可读的格式。在评论中发布的代码往往无法阅读。请不要教年轻人使用过时且臭名昭著的SimpleDateFormat类。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其
DateTimeFormatter
中有了更好的功能。是的,我知道,但问题描述中说明了
SimpleDateFormat
,注释中也有代码片段,所以这就是我在回答中使用的代码片段。将使用
DateTimeFormatter
更新答案。感谢您指出这一点。请不要教年轻人使用早已过时且臭名昭著的
SimpleDateFormat
类。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其
DateTimeFormatter
中有了更好的功能。是的,我知道,但问题描述中说明了
SimpleDateFormat
,注释中也有代码片段,所以这就是我在回答中使用的代码片段。将使用
DateTimeFormatter
更新答案。谢谢你指出这一点。
    Locale desiredLanguage = Locale.forLanguageTag("es");
    DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("MMM", desiredLanguage);

    OffsetDateTime dateTime = yourResultSet.getObject("your_database_column", OffsetDateTime.class);
    String monthString = dateTime.format(monthFormatter);
    ZonedDateTime zdt = dateTime.atZoneSameInstant(ZoneId.of("Europe/Madrid"));
    String monthString = zdt.format(monthFormatter);