java - 如何使用 PostgreSQL DB 插入当前日期和时间并以特定格式检索它?

标签 java postgresql date time

例如,我有一个表格如下:

CREATE TABLE MESSAGES(
MESSAGE_ID INTEGER PRIMARY KEY,
SENT TIMESTAMP  NOT NULL
);

在我的java类中,我将message_id作为整数并作为日历发送。

我的查询是这样的:

插入时(仅显示日期部分):

    String sql1="insert into messages (message_id,sent)  values (?,?)";
    Calendar cal=Calendar.getInstance();
    ps1.setDate(2, new java.sql.Date(cal.getTimeInMillis()));

插入Table View 后是:

message_id 已发送

<小时/>
 1       | 2016-12-22 00:00:00
 2       | 2016-6-22 00:00:00

检索时(仅显示日期部分):

    String sql="select message_id, sent from messages";
    Messages msg=new Messages();
    Calendar cal=Calendar.getInstance();   
    Date d=rs.getDate("sent");  
    String pattern = "yyyy-MM-dd hh:mm:ss a";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    String conDate=simpleDateFormat.format(d);

我得到了日期,但时间始终是中午 12:00:00。 我想以这样的格式显示获取它:

“消息于2016-12-3 19:30:00 PM发送”

我做错了什么吗?任何形式的帮助表示赞赏...:)

最佳答案

日期在 JDBC 中仅表示“日”。如果您也想有时间,请使用时间戳。

编辑: 我所说的是:

String sql1="insert into messages (message_id,sent)  values (?,?)";
ps1.setTimestamp(2, java.sql.TimeStamp.from(Instant.now()));

String sql="select message_id, sent from messages";
Messages msg=new Messages();
Calendar cal=Calendar.getInstance();   
java.util.Date d=rs.getTimestamp("sent");  
String pattern = "yyyy-MM-dd hh:mm:ss a";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String conDate=simpleDateFormat.format(d);
据我所知,这些都没有被弃用,如果是这样,我也没有更现代的解决方案。仍在等待 JDBC 支持新的 API... 而 getDate/new java.sql.Date 会减少时间,而这不是你想要的。

关于java - 如何使用 PostgreSQL DB 插入当前日期和时间并以特定格式检索它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43211437/

相关文章:

java - 千分尺与 DynaTrace 的集成

java - NoClassDefFoundError 到底什么时候抛出?

c# - 从 c# 在 odoo PostgreSQL 数据库中插入记录并在 Odoo 中查看记录

postgresql - 使用可变参数、任意数组和任意元素移植 Oracle decode()

hibernate - Spring 数据休息 : "Date is null" query throws an postgres exception

jQuery:时间函数输出错误的天数

java - struts2 中的 jasperreports

java - Java Web Start 中可能存在的错误

javascript - 需要使用 Javascript Date Object 在 DST 转换上显示本地时间

php - 为什么我得到的日期是错误的?