我已经完成了所有设置,以便将当前日期存储到Java中的变量中.我想弄清楚的是如何在当前日期之后存储1年的日期.
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Scanner;
import java.util.Calendar;
Run Code Online (Sandbox Code Playgroud)
这是我目前的日期:
DateFormat newDate = new SimpleDateFormat("MM/dd/yyyy");
Date date = new Date();
startDate = newDate.format(date);
Run Code Online (Sandbox Code Playgroud)
因此,如果今天是例如它将存储2/18/2013.我想存储2014年2月18日的日期.我该怎么做呢?
iTe*_*ech 99
如果您不想拖动外部库,只需使用 calendar.add(Calendar.YEAR, 1)
Calendar cal = Calendar.getInstance();
Date today = cal.getTime();
cal.add(Calendar.YEAR, 1); // to get previous year add -1
Date nextYear = cal.getTime();
Run Code Online (Sandbox Code Playgroud)
请注意,如果日期是,29/Feb/2012
并且您添加了1年,您将获得28/Feb/2013
LocalDate.parse(
"2/18/2013" ,
DateTimeFormatter.ofPattern ( "M/d/uuuu" )
).plusYears( 1 )
Run Code Online (Sandbox Code Playgroud)
该接受的答案是正确的,但过时的如Java 8中.
Java 8及更高版本中内置的java.time框架取代了麻烦的旧java.util.Date/.Calendar类.新课程的灵感来自非常成功的Joda-Time框架,旨在作为其继承者,在概念上类似但重新设计.由JSR 310定义.由ThreeTen-Extra项目扩展.请参阅教程.
LocalDate
这些新类包括LocalDate
,表示没有时间或时区的仅日期值.
首先,我们必须解析String输入.该java.time格式化使用类似于老班,但不完全相同的图形码.所以一定要仔细阅读新的文档.
请注意,您的输入String缺少某些值的前导零数字.这意味着你应该使用单一的图形码,M
和d
而不是MM
和dd
.双重代码意味着您希望填充零始终包含在其他单位数值中,02
而不是2
.
String input = "2/18/2013";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern ( "M/d/uuuu" );
LocalDate localDate = LocalDate.parse ( input , formatter );
Run Code Online (Sandbox Code Playgroud)
加一年.java.time框架负责闰年.
LocalDate yearLater = localDate.plusYears ( 1 );
Run Code Online (Sandbox Code Playgroud)
转储到控制台.
System.out.println ( "localDate: " + localDate + " and yearLater: " + yearLater );
Run Code Online (Sandbox Code Playgroud)
localDate:2013-02-18 and yearLater:2014-02-18
该java.time框架是建立在Java 8和更高版本.这些类取代麻烦的老传统日期时间类,如java.util.Date
,Calendar
,和SimpleDateFormat
.
现在处于维护模式的Joda-Time项目建议迁移到java.time类.
要了解更多信息,请参阅Oracle教程.并搜索Stack Overflow以获取许多示例和解释.规范是JSR 310.
您可以直接与数据库交换java.time对象.使用符合JDBC 4.2或更高版本的JDBC驱动程序.不需要字符串,不需要课程.java.sql.*
从哪里获取java.time类?
该ThreeTen-额外项目与其他类扩展java.time.该项目是未来可能添加到java.time的试验场.您可以在此比如找到一些有用的类Interval
,YearWeek
,YearQuarter
,和更多.
使用Calendar#add(int field,int amount)方法.您应该按顺序使用Calendar API来操作日期和时间操作.
Calendar today = Calendar.getInstance();
Calendar nextYearToday = today;
nextYearToday.add(Calendar.YEAR, 1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77683 次 |
最近记录: |