簡體   English   中英

第二天獲得java.sql.Date

[英]get next day java.sql.Date

我有一個Date對象( java.sql.Date )。 我需要在那天晚上12點。 所以我可以創建一個從當前時間到當天結束的時間段。

如何使用java.sql.Date計算時間。 請給我一個例子。

使用java.util.Calendar

java.sql.Date sqlDate = ...;
Calendar cal = Calendar.getInstance();
cal.setTime(sqlDate);
cal.add(Calendar.DAY_OF_YEAR,1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
java.sql.Date sqlTommorow = new java.sql.Date(cal.getTimeInMillis());

理想的情況下,使用約達時間是一個更好的日期和時間API一個比Java的。

java.sql.Date sqlDate = ...;
LocalDate date = new LocalDate(sqlDate.getTime(), DateTimeZone.UTC);
LocalDate tomorrow = date.plusDays(1);

DateTime startOfDay = tomorrow.toDateTimeAtStartOfDay(DateTimeZone.UTC);

java.sql.Date sqlTomorrow = new java.sql.Date(startOfDay.getMillis());

請注意,這假設UTC無處不在......而我懷疑你想要午夜當地時間,在這種情況下你需要指定時區。 另請注意,由於夏令時,所有時區的每天都不會出現午夜 - 上面的代碼會為您提供當天的開始。

使用以下代碼:

java.sql.Date now = new java.sql.Date( new java.util.Date().getTime() );
java.sql.Date tomorrow= new java.sql.Date( now.getTime() + 24*60*60*1000);

這可能不是最好的方式,但恕我直言,它相對容易理解。 它為輸入日期“now”創建一個新的午夜java.sql.Date對象

    String DATE_FORMAT = "dd.MM.yyyy";
    //create a date sql.Date object
    java.sql.Date now = new java.sql.Date( new java.util.Date().getTime() );

    //create a date formatter
    SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMAT);
    //get the midnight date by converting the object to a String and back to a Date object
    java.util.Date midnightUtil = sf.parse( sf.format( now ) );
    //create a new java.sql.Date object and add one days worth of milliseconds;
    java.sql.Date midnight = new java.sql.Date( midnightUtil.getTime() + 86400000 );        

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM