Java 在Hibernate中将给定的Datetime转换为时间戳
我正在使用Hibernate。从用户界面中,我得到的日期时间为Java 在Hibernate中将给定的Datetime转换为时间戳,java,hibernate,Java,Hibernate,我正在使用Hibernate。从用户界面中,我得到的日期时间为2019-04-29 19:00:00。相同的值将存储在我的Oracle数据库中,但保存为2019-04-29 07:00:00 在数据库中,开始时间数据类型为时间戳 添加代码段: { "camp_id":292,"camp_name": "Tata","camp_desc":"Tata","camp_type": 1,"camp_start_time":"2019-04-29 19:00:00"} @Entity public
2019-04-29 19:00:00
。相同的值将存储在我的Oracle数据库中,但保存为2019-04-29 07:00:00
在数据库中,开始时间数据类型为时间戳
添加代码段:
{ "camp_id":292,"camp_name":
"Tata","camp_desc":"Tata","camp_type": 1,"camp_start_time":"2019-04-29 19:00:00"}
@Entity public class Campaign_Sms implements Serializable{
@Column(name = "CAMP_START_TIME") private Date camp_start_time; }
使用@Temporal(TemporalType.DATE)注释
@Column
@Temporal(TemporalType.DATE)
private Date camp_start_time;
@Temporal(TemporalType.TIMESTAMP)
private Date camp_start_time;
用它尝试@Temporal(TemporalType.TIMESTAMP)
注释
@Column
@Temporal(TemporalType.DATE)
private Date camp_start_time;
@Temporal(TemporalType.TIMESTAMP)
private Date camp_start_time;
TemporalType.DATE
注释值省略时间,以及TemporalType.time
排除日期。检查文档
更新
输出格式应为
yyyyy-MM-dd hh:MM:ss a
,如果需要输出,格式应为yyy-MM-dd hh:MM:ss
添加代码段:{“营地id”:292,“营地名称”:“塔塔”,“营地描述”:“塔塔”,“营地类型”:1,“营地开始时间”:“2019-04-29 19:00”@Entity public class Campaign_Sms实现了可序列化的{@Column(name=“CAMP_START_TIME”)私有日期CAMP_START_TIME;}感谢sachith的回复。但我仍然无法获得SimpleDataFormat formatter=new SimpleDataFormat(“yyyy-MM-dd hh:MM:ss”);java.util.Date date1=sdf.parse(dt);System.out.println(“在SimpleDataFormat之后--”+date1);字符串pattern=sdf.format(date1);System.out.println(“应用后模式--”+pattrn);O/P:SimpleDateFormat之后——应用模式之后的2019年4月29日星期一19:00:00——2019-04-29 07:00:00如果您正在解析2019-04-29 19:00:00
,您的输入模式应该是yyyy-MM-dd HH:MM:ss
。一旦您使用yyyy-MM-dd hh:MM:ss
(注意简单的hh
)模式,它将不支持基于24h
的时间格式,只支持12h
时间。然后你必须在时间里使用AM/PM
。所以,为了支持新的输出,格式应该是yyyy-MM-dd hh:MM:ss a
,并且在更新输入模式yyy-MM-dd hh:MM:ss和TemporalType.TIMESTAMP之后,仍然会将记录保存为2019-04-29 07:00:00 PM。如果数据库保持这种格式,我想,只要你从数据库中取回你的时间,并且没有任何数据丢失,就不会有问题。我猜您的数据库字段数据类型是DATETIME或其他类型(取决于数据库)。如果是这样的话,只要得到正确的值,就不必担心数据库中的值。只需检查您的程序保存一个获取值是否与插入的值相同。感谢Rajesh的回复。但我仍然无法获取SimpleDateFormat formatter=new SimpleDateFormat(“yyyy-MM-dd hh:MM:ss”);java.util.Date date1=sdf.parse(dt);System.out.println(“在SimpleDataFormat之后--”+date1);字符串pattern=sdf.format(date1);System.out.println(“应用后模式--”+pattrn);O/P:在SimpleDateFormat之后——4月29日星期一19:00:00 IST 2019应用模式之后——2019-04-29 07:00:00