问题很简单,但令人惊讶的是,谷歌对此几乎一无所知。我有今年1月1日的number of days
。在Java中如何将其转换为date
?
发布于 2013-04-26 11:16:03
使用日历进行日期计算
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2013);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, 1);
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
c.add(Calendar.DATE, numberOfDays);
Date date = c.getTime();
请注意,由于DST (夏季时间)的不同,不同地区的结果可能有所不同。上面的示例使用默认区域设置。
发布于 2013-04-26 11:25:01
您可以简单地使用SimpleDateFormat
将String
转换为Date
。模式D
可以用来表示一年中的天数。
假设你有一个
int numberOfDays = 42; // Arbitrary number.
然后计算自1970年1月1日以来的天数(the Epoch)
Date date = new SimpleDateFormat("D").parse(String.valueOf(numberOfDays));
或者,此参数计算从当前年的1月1日起的天数。
Date date = new SimpleDateFormat("D yyyy").parse(numberOfDays + " " + Calendar.getInstance().get(Calendar.YEAR));
发布于 2013-04-26 11:32:36
当涉及到日期处理时,我发现JodaTime使用起来非常优雅。有了它,你可以这样做:
DateTime date = new DateTime().withDayOfYear(dayOfYear);
https://stackoverflow.com/questions/16228128
复制相似问题