簡體   English   中英

根據ISO 8601生成周/年的列表

[英]Generate a list of the week/year according ISO 8601

我嘗試相應地生成帶有星期編號 (由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

我不知道應該拿哪一年的信息。

任何想法?

正如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)
}

不確定我是否了解,但您的意思是:

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" ) )
}

我知道了:使用YYYY格式時,SimpleDateFormat可以提供正確的星期年份信息

因此這僅在Java 1.7中可用

謝謝您的回應!

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM