2016-04-25 45 views
4

我有這個Time對象:如何將30分鐘添加到java.sql.Time對象?

Time myTime = java.sql.Time.valueOf("15:33:00"); 

我如何在Java中添加30分鐘myTime?這意味着新的時間將是16時03分00秒

+0

如果你使用的是JDK8,我建議你看看新的java.time包。這很容易。 – duffymo

+0

我無法使用它。我必須使用java.sql.Time –

+2

您使用的是哪個版本的Java?你能提供更多的上下文嗎?是否可以簡單地通過SQL在數據庫引擎中進行時間數學計算? –

回答

3
java.sql.Time myTime = java.sql.Time.valueOf("15:33:00"); 
LocalTime localtime = myTime.toLocalTime(); 
localtime = localtime.plusMinutes(30); 
String output = localtime.toString(); 

你可以得到LOCALTIME從java.sql.Time中的直線距離並且您可以在LocalTime Api中使用plusMinutes來添加30分鐘。這可能會幫助你檢查這個

+0

好的答案,除了命名一個'LocalTime'對象的「日期」是令人困惑的。爲什麼不叫它「localTime」? –

+0

我將日期更改爲本地時間。 :D:D – Priyamal

+1

謝謝,正是我需要的。它解決了我的問題。 –

0

這裏有一個簡單的方法來做到這一點,利用java.time.LocalDateTime

package time; 

import java.time.LocalDate; 
import java.time.LocalDateTime; 
import java.time.LocalTime; 
import java.time.ZoneOffset; 
import java.time.format.DateTimeFormatter; 
import java.time.temporal.TemporalField; 

/** 
* Created by Michael 
* Creation date 4/24/2016. 
* @link 
*/ 
public class TimeDemo { 

    public static void main(String[] args) { 
     // Three three lines do the work 
     LocalDateTime localDateTime = LocalDateTime.of(2016, 4, 24, 9, 10); 
     LocalDateTime halfHourLater = localDateTime.plusMinutes(30); // Add 30 minutes 
     java.sql.Time sqlDateTime = new java.sql.Time(halfHourLater.toInstant(ZoneOffset.UTC).toEpochMilli()); // 
     // Printout just to check 
     System.out.println(DateTimeFormatter.ofPattern("yyyy-MMM-dd hh:mm:ss.SSS").format(halfHourLater)); 
     System.out.println("java.time milliseconds: " + halfHourLater.toInstant(ZoneOffset.UTC).toEpochMilli()); 
     System.out.println("System.currentMillis : " + System.currentTimeMillis()); 
    } 
} 
+0

這個答案中沒有必要使用日期時間。這個問題只適用於每日時間([java.sql.Time](http://docs.oracle.com/javase/8/docs/api/java/sql/Time.html)) –