如何在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);