回答

收藏

将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();
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则