我正在尝试将X天数(从1到180天)添加到Calender对象,然后构建一个新的时间戳以保存在DB中,其中包含新生成的日期+(时间=现在的时间)。下面的代码是我到目前为止所做的,所以有人可以帮我处理生成时间戳所需的任何代码示例,并使用新生成的日期+(时间=现在的时间)吗?
这是我目前使用的代码:
Date todayDate = new Date();
Calendar c = Calendar.getInstance();
switch(daysToAdd){
case 1:
c.add(Calendar.DAY_OF_YEAR, 7);
break;
case 2:
c.add(Calendar.DAY_OF_YEAR, 14);
break;
case 3:
c.add(Calendar.DAY_OF_YEAR, 21);
break;
case 4:
c.add(Calendar.DAY_OF_YEAR, 30);
break;
case 5:
c.add(Calendar.DAY_OF_YEAR, 60);
break;
case 6:
c.add(Calendar.DAY_OF_YEAR, 90);
break;
case 7:
c.add(Calendar.DAY_OF_YEAR, 180);
break;
default: c.add(Calendar.DAY_OF_YEAR, 7);
}
Date enddate = c.getTime();
答案 0 :(得分:1)
您可以根据原始日期对象实例化时间戳。接下来,您需要获取对正在用于执行操作/添加的Calendar实例的引用。
Date todayDate = new Date();
Timestamp original = new Timestamp(todayDate.getTime());
Calendar c = Calendar.getInstance();
c.setTimeInMillis(original.getTime());
添加和切换/大小写后,您可以实例化一个新的Timestamp实例来验证您的添加内容:
Timestamp later = new Timestamp(c.getTime().getTime());
假设您可以将天数作为方法参数传递,这里是您修改后的工作代码,假设硬编码的天数值:
public static void main(String[] args) {
Date todayDate = new Date();
Timestamp original = new Timestamp(todayDate.getTime());
Calendar c = Calendar.getInstance();
System.out.println("Old time : " + original.toString());
c.setTimeInMillis(original.getTime());
int daysToAdd = 5;
switch (daysToAdd) {
case 1:
c.add(Calendar.DAY_OF_YEAR, 7);
break;
case 2:
c.add(Calendar.DAY_OF_YEAR, 14);
break;
case 3:
c.add(Calendar.DAY_OF_YEAR, 21);
break;
case 4:
c.add(Calendar.DAY_OF_YEAR, 30);
break;
case 5:
c.add(Calendar.DAY_OF_YEAR, 60);
break;
case 6:
c.add(Calendar.DAY_OF_YEAR, 90);
break;
case 7:
c.add(Calendar.DAY_OF_YEAR, 180);
break;
default:
c.add(Calendar.DAY_OF_YEAR, 7);
}
Timestamp later = new Timestamp(c.getTime().getTime());
System.out.println("New time : " + later.toString());
}
上述代码的输出是(使用选项5添加60天):
Old time : 2013-12-29 18:30:41.541
New Date : 2014-02-27 18:30:41.541
答案 1 :(得分:0)
使用TimeStamp(long time)
构造函数
Timestamp ts = new Timestamp(enddate.getTime());
甚至直接来自calander实例
Timestamp ts = new Timestamp(c.getTimeInMillis());
答案 2 :(得分:0)
使用Joda-Time 2.3库轻松。
DateTime dateTime = new DateTime().plusDays( yourNumber ).withTimeAtStartOfDay();
如有必要,转换为java.util.Date。
java.util.Date date = dateTime.toDate();
转换为java.sql.Date以与JDBC一起使用。
java.sql.Date date = new java.sql.Date( dateTime.getMillis() );
答案 3 :(得分:0)
通过使用Calendar对象的getTime()
方法,我们可以返回Date Object。
但是没有直接从Calendar
您可以使用Timestamp
构造函数
Timestamp enddate = new Timestamp(c.getTimeInMillis());