首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取捷克语的月份名称

如何获取捷克语的月份名称
EN

Stack Overflow用户
提问于 2013-10-19 20:46:57
回答 2查看 1.6K关注 0票数 4

我在我的语言-捷克语中获取一个月的名称时遇到了问题。

我想要取月份的名字作为名词,但我总是得到变化的标题。我尝试了许多方法来获取名称,但所有方法都会返回月份名称的变形标题

例如,我想在捷克语中获得10月的名称"Říjen",但我总是得到"října“。

代码语言:javascript
复制
    Calendar cal=Calendar.getInstance();
    SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM");
    String month_name = month_date.format(cal.getTime());
    DateFormat formatData = new SimpleDateFormat("d.MMMM yyyy H:mm");
    System.out.println(month_name);
    System.out.println(String.format(Locale.getDefault(),"%tB", cal));
    System.out.println(formatData.format(cal.getTime()));

对我来说,所有返回的格式都不正确。有没有办法得到正确的月份名称?谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-11-19 22:14:46

您可能已经解决了这个问题,但以下是解决方案。我做了一些研究,原因是Java8中java.text.DateFormatSymbols的变化(参见compatibility guide)。

格式化表单和独立表单是有区别的。格式形式: ledna,u-nora,b-řezna等;独立形式: leden,u-nor,b-ř-ezen等。

根据语言规则,当月份单独出现时,它的名称以较低的字符开头,除非它是句子的开头。

此代码将为您提供所需的结果。

代码语言:javascript
复制
public static void main(String[] args) {
  Calendar cal = Calendar.getInstance();
  Locale loc = new Locale("cs", "CZ"); 
  System.out.println(cal.getDisplayName(Calendar.MONTH, Calendar.LONG_STANDALONE, loc));
}
票数 5
EN

Stack Overflow用户

发布于 2017-05-21 20:58:23

最后,我找到了这个问题的最佳解决方案。问题是"MMMM“格式用于月份的”格式化名称“(f.e."ledna")。如果您需要一个“独立名称”月份(f.e."leden"),则需要使用"LLLL“。可在此处找到完整的日期格式文档:

https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

下面是一个简单的例子:

DateFormat.format("LLLL yyyy", date).toString().capitalize() // returns: Leden 2016

代码语言:javascript
复制
DateFormat.format("MMMM yyyy", date).toString() // returns ledna 2016

此解决方案适用于所有API。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19466180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档