我使用JodaTime
从当前日期中扣除一天。但它不适合我,这意味着,我的日期保持不变,没有任何扣除!
这是代码,
public class Note {
private java.sql.Date date;
public java.sql.Date getDate() {
return date;
}
public void setDate(java.sql.Date date) {
this.date = date;
}
}
Note notez=new Note();
notez.setDate(new java.sql.Date(new DateTime(new Date()).minus(1).toDate().getTime()));
对此有任何想法。
谢谢。
答案 0 :(得分:4)
答案 1 :(得分:3)
试试这个:
notez.setDate(new java.sql.Date(new DateTime(new Date()).minusDays(1).toDate().getTime()));
答案 2 :(得分:1)
为什么不使用 java.util.Calendar&而是java.util.Date。
它很容易就像这样
import java.util.Calendar;
import java.util.Date;
...
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add(Calendar.DATE, -1); //-1 parameter indicates number of days you wish to add/deduct,
Date yesterday = c.getTime();
notez.setDate(yesterday);
答案 3 :(得分:1)
LocalDate
java.sql.Date
表示仅限日期的值,没有时间和没有时区。与不幸名称java.util.Date
不同,LocalDate
代表日期和时间。
适当的Joda-Time类将为LocalDate
。
虽然DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
LocalDate today = LocalDate.now( zone );
LocalDate yesterday = today.minusDays( 1 );
不存储时区,但时区对于确定“今天”至关重要。就在巴黎午夜过后,蒙特利尔仍然是“昨天”。
LocalDate::toString
转换为java.sql类型。 java.sql.Date.valueOf
方法生成根据ISO 8601标准YYYY-MM-DD格式化的文本。对于仅限日期的值,恰好与java.sql.Date sqlDate = java.sql.Date.valueOf( yesterday.toString() );
方法所期望的SQL格式相同。
<script type="text/javascript">
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'pickfiles',
container: document.getElementById('container'),
url : '<?php echo WEBSITE_CNST_URL?>/upload.inc.php?adid=<?php echo $adid ?>',
resize : { width : 1024, height : 768, quality : 80 },
flash_swf_url : '<?php echo WEBSITE_URL ?>/js/Moxie.swf',
silverlight_xap_url : '<?php echo WEBSITE_URL ?>/js/Moxie.xap',
filters : {
max_file_size : '4mb',
mime_types: [
{title : "Image files", extensions : "jpg,gif,png"}
]
},
顺便说一下......如果你使用Java 8及更高版本中内置的java.time框架代替Joda-Time,代码将与此处显示的几乎相同。 Joda-Time的制造商要求我们尽快迁移到java.time。