栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate在将Java Calendar对象读取和写入SQL TIMESTAMP时使用什么时区?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate在将Java Calendar对象读取和写入SQL TIMESTAMP时使用什么时区?

当Hibernate将Java Calendar对象写入SQL
TIMESTAMP列时,它将日期,计算机日期或Calendar对象(或其他日期)中指定的日期调整到哪个时区?

Hiberante
3.x在

CalendarType
(请参阅HB-1006)中使用以下内容:

public void set(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {    final Calendar cal = (Calendar) value;    //st.setTimestamp( index,  new Timestamp( cal.getTimeInMillis() ), cal ); //JDK 1.5 only    st.setTimestamp( index,  new Timestamp( cal.getTime().getTime() ), cal );}

因此,Hibernate使用

PreparedStatement#setTimestamp(int, Timestamp,Calendar)
哪个使用日历的时区。

当Hibernate将TIMESTAMP读入日历对象时,它将日期转换到哪个时区?

好了,再次让我们看一下这个

CalendarType
类:

public Object get(ResultSet rs, String name) throws HibernateException, SQLException {    Timestamp ts = rs.getTimestamp(name);    if (ts!=null) {        Calendar cal = new GregorianCalendar();        if ( Environment.jvmHasTimestampBug() ) { cal.setTime( new Date( ts.getTime() + ts.getNanos() / 1000000 ) );        }        else { cal.setTime(ts);        }        return cal;    }    else {        return null;    }}

因此,Hibernate会 使用 _ 默认时区* _中 _ 的默认时区中_ 的当前时间来 _构造默认

GregorianCalendar
*_。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号