将java.util.date与java.sql.Time合并
技术问答
93 人阅读
|
0 人回复
|
2023-09-13
|
我有一个广泛的DATE-TIME转换类,但是遇到一种无法解决的情况:
+ ` ]* `; [3 L: E5 B我有一个java.util.date:星期二5月10日00:00:00 BST 20111 I: V5 `' }% |7 I+ u6 N) d+ ?
我有一个java.sql.time:03:58:44- O: N- R* h+ b" `% G! D6 H6 T
我需要创建一个java.util.date:2011年5月10日星期二03:58:44 BST
& p# u2 ?2 p: l6 ^$ \: Z我想到的唯一方法是:
" S- B* b0 Y# j' @( W' }public static Date getDate(Date date, Time time) {: F7 f7 s" |0 W: y
Calendar calendar=Calendar.getInstance();
" c( D) {4 K4 ~( V4 W2 d$ n+ X6 _0 b calendar.set(date.getYear(), date.getMonth(), date.getDay(), time.getHours(), time.getMinutes(), time.getSeconds());. z, V3 m% H# k; [, A
return calendar.getTime();
' s; h! r' \( T9 r}0 v$ I$ k% _' O) { j7 @, y: s
完全不推荐使用的代码,并且不起作用:java.sql.Time.getYear上的java.lang.IllegalArgumentException(未知源)0 N! Q: G3 s: Z) b- W
有任何想法吗?8 n$ Y4 k0 Q: D# @4 x) G
K* h4 d) M& H5 B0 k解决方案:
: |. E6 N+ j9 ^ ( R3 @$ T; s: f- J& F9 B9 r
! J& \, F" N! V9 `" Q3 ^
( v! R1 X* }( v+ f8 A java.sql.Time只是java.util.Date的包装。您可以像添加两个java.util.Date对象一样使用它。+ k8 [7 l% |) P7 i. ?. @* d
例如,将Calendar设置为java.sql.Time:
! r5 o$ q1 E1 J" b! w7 |; R, qcalendar.setTime(time);1 T& v ~/ t- \- F
现在提取小时/分钟/秒字段,即:$ ?- W3 u6 h, J9 p+ Y) k
calendar.get(Calendar.HOUR);& L& C7 H# @+ U! } T( B- G
接下来,将Calendar设置为java.util.Date对象,并将这三个字段添加到其时间,即:
, q& p4 E, [5 ccalendar.add(Calendar.HOUR, hour);
6 z" y7 C, a9 @( B: c0 S并获取日期:! m- g6 b0 J; k1 L
calendar.getTime(); |
|
|
|
|
|