我使用postgres 9.4(Date Column)作为我的数据库,想知道是否可以使用以下格式的JDBC preparedstatement将格式化的日期插入数据库(我一直在搜索,找不到任何东西) ): 2015年8月21日。这是我的代码
Calendar calendar = Calendar.getInstance();
java.util.Date today = calendar.getTime();
SimpleDateFormat formatter= new SimpleDateFormat("MM-dd-yyyy");
java.util.Date mydate= formatter.parse(today.toString());
preparedStatement.setDate(2,new java.sql.Date(mydate.getTime()));
不用说,这不起作用,我得到这个错误
无法解释日期:“2015年8月21日星期五01:17:59” 再次,我想把它变成2015年8月21日,我可以成功执行代码,如果我只是这样插入
Calendar calendar = Calendar.getInstance();
java.util.Date mydate = calendar.getTime();
preparedStatement.setDate(2,new java.sql.Date(mydate.getTime()));
但插入时间为2015年8月21日,我想的可能只是将其保存为8-21-2015格式,然后只解析所有这些格式,但更喜欢第一种选择。
答案 0 :(得分:0)
您的日期模式错误:必须是:
$.ajax({
'type': 'GET',
'url': 'http://api.nytimes.com/svc/search/v2/articlesearch',
'dataType': 'jsonp',
'callback': '',
data: {
'q': seaString,
'response-format': "jsonp",
'api-key': 'xxxxxxxxxxxxxxxx',
'callback': 'svc_search_v2_articlesearch'
},
'success': function(data, textStats, XMLHttpRequest) {
// passed function object for data processing
console.log(data);
}
});
有关mor信息,请参阅javadoc of SimpleDateFormat
答案 1 :(得分:0)
日期列中的值本身没有格式化,只是一个日期,如果要在将数据从数据库中读回时格式化日期,只需使用{{3}之一}。
E.g。
select to_char(your_date_column, 'MON-DD-YYYY') from yourtable
答案 2 :(得分:0)
不知道为什么要转换为字符串并返回,但today.toString()
不生成与MM-dd-yyyy
匹配的文字字符串,因此{ {1}}会失败。
如果意图是删除时间部分,为了获得"今天",您可以:
formatter.parse(today.toString())
或者,使用Java 8:
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
cal.clear();
cal.set(year, month, day);
java.sql.Date today = new java.sql.Date(cal.getTimeInMillis());
日期格式
为了您的愿望,插入一个"格式化的日期",然后您感到困惑。数据库中的日期列没有格式,它只存储日期值。
查询日期列时,您将获得日期值,可以使用java.sql.Date today = java.sql.Date.valueOf(LocalDate.now());
方法在Java中检索该日期值。
在工具中查询日期时,该工具会将日期转换为文本值以供显示。某些工具可以让您控制日期格式。
如果您想要控制日期格式,您可以使用DBMS特定的格式化功能将日期转换为查询中的文本列。