小智 662
像这样的东西应该做的伎俩:
String dt = "2008-01-01"; // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1); // number of days to add
dt = sdf.format(c.getTime()); // dt is now the new date
Run Code Online (Sandbox Code Playgroud)
Lis*_*isa 203
与C#相比,Java似乎远远落后于八球.此实用程序方法使用Calendar.add方法(可能是唯一简单的方法)显示Java SE 6中的方法.
public class DateUtil
{
public static Date addDays(Date date, int days)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days); //minus number would decrement the days
return cal.getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
要根据提出的问题添加一天,请按以下方式调用:
String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);
Run Code Online (Sandbox Code Playgroud)
Dan*_*ral 73
在Java 8及更高版本中,java.time包使得它非常自动化.(教程)
假设String输入和输出:
import java.time.LocalDate;
public class DateIncrementer {
static public String addOneDay(String date) {
return LocalDate.parse(date).plusDays(1).toString();
}
}
Run Code Online (Sandbox Code Playgroud)
Ris*_*rna 64
我更喜欢使用Apache的DateUtils.请查看http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/time/DateUtils.html.它非常方便,尤其是当您必须在项目中使用多个位置时,并且不希望为此编写单线方法.
API说:
addDays(Date date,int amount):在返回新对象的日期中添加若干天.
请注意,它返回一个新的Date对象,并且不会对前一个对象进行更改.
Ale*_*x B 57
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );
Run Code Online (Sandbox Code Playgroud)
小智 42
看看Joda-Time(https://www.joda.org/joda-time/).
DateTimeFormatter parser = ISODateTimeFormat.date();
DateTime date = parser.parseDateTime(dateString);
String nextDay = parser.print(date.plusDays(1));
Run Code Online (Sandbox Code Playgroud)
mic*_*cha 40
Java 8添加了一个用于处理日期和时间的新API.
使用Java 8,您可以使用以下代码行:
// parse date from yyyy-mm-dd pattern
LocalDate januaryFirst = LocalDate.parse("2014-01-01");
// add one day
LocalDate januarySecond = januaryFirst.plusDays(1);
Run Code Online (Sandbox Code Playgroud)
小智 39
请注意,这条线增加了24小时:
d1.getTime() + 1 * 24 * 60 * 60 * 1000
Run Code Online (Sandbox Code Playgroud)
但这条线增加了一天
cal.add( Calendar.DATE, 1 );
Run Code Online (Sandbox Code Playgroud)
在夏令时变化的日子(25或23小时),您将得到不同的结果!
小智 27
你可以使用Simple java.util lib
Calendar cal = Calendar.getInstance();
cal.setTime(yourDate);
cal.add(Calendar.DATE, 1);
yourDate = cal.getTime();
Run Code Online (Sandbox Code Playgroud)
小智 23
Date today = new Date();
SimpleDateFormat formattedDate = new SimpleDateFormat("yyyyMMdd");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 1); // number of days to add
String tomorrow = (String)(formattedDate.format(c.getTime()));
System.out.println("Tomorrows date is " + tomorrow);
Run Code Online (Sandbox Code Playgroud)
这将给明天的日期.c.add(...)参数可以从1更改为另一个数字以获得适当的增量.
Avi*_*kar 18
如果您使用的是Java 8,那么请执行此操作.
LocalDate sourceDate = LocalDate.of(2017, Month.MAY, 27); // Source Date
LocalDate destDate = sourceDate.plusDays(1); // Adding a day to source date.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // Setting date format
String destDate = destDate.format(formatter)); // End date
Run Code Online (Sandbox Code Playgroud)
如果你想使用SimpleDateFormat,那就这样做吧.
String sourceDate = "2017-05-27"; // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(sourceDate)); // parsed date and setting to calendar
calendar.add(Calendar.DATE, 1); // number of days to add
String destDate = sdf.format(calendar.getTime()); // End date
Run Code Online (Sandbox Code Playgroud)
dva*_*aey 15
long timeadj = 24*60*60*1000;
Date newDate = new Date (oldDate.getTime ()+timeadj);
Run Code Online (Sandbox Code Playgroud)
这将从oldDate开始占用epoch以来的毫秒数,并添加1天的毫秒数,然后使用Date()公共构造函数使用新值创建日期.此方法允许您添加1天或任意数量的小时/分钟,而不仅仅是整天.
Jen*_*ens 14
由于Java 1.5 TimeUnit.DAYS.toMillis(1)对我来说看起来更干净.
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date day = dateFormat.parse(string);
// add the day
Date dayAfter = new Date(day.getTime() + TimeUnit.DAYS.toMillis(1));
Run Code Online (Sandbox Code Playgroud)
Ram*_*h-X 11
在java 8中你可以使用 java.time.LocalDate
LocalDate parsedDate = LocalDate.parse("2015-10-30"); //Parse date from String
LocalDate addedDate = parsedDate.plusDays(1); //Add one to the day field
Run Code Online (Sandbox Code Playgroud)
您可以java.util.Date按如下方式转换为对象.
Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Run Code Online (Sandbox Code Playgroud)
您可以LocalDate按如下方式合成String.
String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Run Code Online (Sandbox Code Playgroud)
Kus*_*aha 10
这很简单,试着用一个简单的词来解释.得到今天的日期如下
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());// print today's date
calendar.add(Calendar.DATE, 1);
Run Code Online (Sandbox Code Playgroud)
现在通过calendar.add方法设置此日期的前一天,该方法采用(常量,值).这里的常数可以是DATE,hours,min,sec等,而value是常量的值.就像有一天一样,前面的常量是Calendar.DATE,它的值是1,因为我们想要提前一天的价值.
System.out.println(calendar.getTime());// print modified date which is 明天的约会
谢谢
dpk*_*dpk 10
在Java 8中,简单的方法是:
Date.from(Instant.now().plusSeconds(SECONDS_PER_DAY))
Run Code Online (Sandbox Code Playgroud)
Apache Commons已经有了这个DateUtils.addDays(Date date,int amount) http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DateUtils.html#addDays%28java您使用的.util.Date,%20int%29,或者您可以使用JodaTime使其更清洁.
只需在String中传递日期和下一天的数量
private String getNextDate(String givenDate,int noOfDays) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
String nextDaysDate = null;
try {
cal.setTime(dateFormat.parse(givenDate));
cal.add(Calendar.DATE, noOfDays);
nextDaysDate = dateFormat.format(cal.getTime());
} catch (ParseException ex) {
Logger.getLogger(GR_TravelRepublic.class.getName()).log(Level.SEVERE, null, ex);
}finally{
dateFormat = null;
cal = null;
}
return nextDaysDate;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
如果要添加单个时间单位并且您希望其他字段也增加,则可以安全地使用add方法.见下面的例子:
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(1970,Calendar.DECEMBER,31);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
将打印:
1970-12-31
1971-01-01
1970-12-31
Run Code Online (Sandbox Code Playgroud)
小智 6
试试这个方法:
public static Date addDay(int day) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, day);
return calendar.getTime();
}
Run Code Online (Sandbox Code Playgroud)
startCalendar.add(Calendar.DATE, 1); //Add 1 Day to the current Calender
Run Code Online (Sandbox Code Playgroud)
其实很简单。一天包含 86400000 毫秒。因此,首先您通过使用从系统获取当前时间(以毫秒为单位),System.currentTimeMillis()然后添加 84000000 毫秒并使用Date类生成毫秒的日期格式。
例子
String Today = new Date(System.currentTimeMillis()).toString();
字符串 今天将是 2019-05-9
String Tommorow = new Date(System.currentTimeMillis() + 86400000).toString();
弦乐明天将是 2019-05-10
String DayAfterTommorow = new Date(System.currentTimeMillis() + (2 * 86400000)).toString();
字符串 DayAfterTommorow 将是 2019-05-11
如果您使用Java SE 8或更高版本,则应使用新的日期/时间API
int days = 7;
LocalDate dateRedeemed = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");
String newDate = dateRedeemed.plusDays(days).format(formatter);
System.out.println(newDate);
Run Code Online (Sandbox Code Playgroud)
如果必须从转换java.util.Date为java.time.LocalDate,则可以使用此方法。
public LocalDate asLocalDate(Date date) {
Instant instant = date.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
return zdt.toLocalDate();
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Java SE 8之前的版本,建议您使用Joda-Time
Joda-Time提供了Java日期和时间类的质量替代,并且是Java SE 8之前的Java的事实上的标准日期和时间库。
int days = 7;
DateTime dateRedeemed = DateTime.now();
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/uuuu");
String newDate = dateRedeemed.plusDays(days).toString(formatter);
System.out.println(newDate);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
878094 次 |
| 最近记录: |