如何在Groovy中将整数转换为月份名称?

4

我收到一个整数,需要将其转换为当前语言环境下的月份名称:

以en-us语言环境为例: 1 -> January 2 -> February

以下是我的Gremlin代码示例:

.....groupBy{[it[3], it[2].getMonth()]}{it[1]}{it.sum()}.cap().scatter().transform{[Name:it.key,Tx:it.value]}

在这里,我获得的是:
==>{Name=[ABC, 7], Tx=1750.0}

我希望以名称格式获取月份整数。

我尝试过it[2].getMonth().toString()cal.get(Calendar.MONTH)等方法,但都没有成功。


Replace("Thanks", "Acceptance").... :-) 的翻译是:替换("感谢","接受").... :-) - dmahapatro
2个回答

4
要将一个月份整数转换为字符串,你可以这样做:
String month = new java.text.DateFormatSymbols().months[ 4 ]

assert month == 'May'

new java.text.DateFormatSymbols().months[it[2].getMonth()]... 它正在工作。谢谢。 - Agustus
如何以“月份 日,年份”的格式显示上述内容,例如:7月12日,8月13日等? - Agustus
http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#format(java.lang.String) - tim_yates
我尝试了这个,但是月份仍然以整数的方式显示。{new Date(it.getProperty("date")).format('MM yy')} 它显示为02 12,03 12...月份名称再次变成整数形式。 :( - Agustus
{new Date(it.getProperty("date")).format('MMM yy')}.. 抱歉,我的错。谢谢 :) - Agustus

1
考虑以下三种方法,希望这些能够帮助你。
1)您可以按照下面的方式进行操作,将月份作为整数输入。
import java.text.DateFormatSymbols;
public String getMonth(int month) {
return new DateFormatSymbols().getMonths()[month-1];
}

2) 你可以通过提供日期按以下方式操作

SimpleDateFormat dateFormat = new SimpleDateFormat( "LLLL", Locale.getDefault() );
dateFormat.format( date );

3)使用SimpleDateFormat。

import java.text.SimpleDateFormat;

public String formatMonth(String month) {
SimpleDateFormat monthParse = new SimpleDateFormat("MM");
SimpleDateFormat monthDisplay = new SimpleDateFormat("MMMM");
return monthDisplay.format(monthParse.parse(month));
}
formatMonth("2"); //Result: February

2
在Groovy中,您的第三个选项可以简化为String formatMonth( int month ) { Date.parse( 'MM', "$month" ).format( 'MMMM' ) } - tim_yates
谢谢这些不同的技术。 - Agustus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接