我尝试相应地生成week number(由ISO 8601定义)的天数列表:
mydate='2012-12-25 02:26:55.983'
for (i=1;i<365;i++)
{
mydateAsDate=new Date().parse('yyyy-MM-dd H:mm:ss.S',mydate)+i;
println 'Week ' + mydateAsDate.format('w') + ' => ' + mydateAsDate.format('dd.MM.yyyy');
}
这有效,但我想让这一年也像这样:
Week 1-2013
我无法弄清楚应该采用哪一年的信息。
有什么想法吗?
答案 0 :(得分:1)
正如Jon Skeet所说,我建议使用Joda-Time。
如果您这样做,以下内容应解决您的问题:
mydate= new DateTime(2012,12,25)
yearLater = myDate.plusYears(1)
while(myDate < yearLater){
println "Week ${myDate.weekOfWeekyear} - ${myDate.year}"
myDate = myDate.plusDays(1)
}
答案 1 :(得分:0)
不确定我理解,但你的意思是:
String startDateString = '2012-12-25 02:26:55.983'
Date startDate = Date.parse( 'yyyy-MM-dd H:mm:ss.S', startDateString )
(1..364).each { i ->
println( (startDate++).format( "dd.MM.yyyy : 'Week' w'-'yyyy" ) )
}
答案 2 :(得分:0)
我明白了:SimpleDateFormat在使用YYYY格式时提供正确的周年信息
因此这仅适用于java 1.7
感谢您的回复!
欢呼声