[英]How to change date format in timestamp
我正在使用prepareStatement更新我的sql表。 目前我的日期格式是yyyy-mm-dd,如何使其成為dd-mm-yyyy。
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306?user=root&password=1234&useSSL=false");
con.setAutoCommit(false);
pstmt = con.prepareStatement(qry);
sp = con.setSavepoint();
System.out.println("Enter your name");
String name = sc.next();
System.out.println("Enter your contact number");
long phoneNum = sc.nextLong();
System.out.println("Purpose of visit");
String purpose = sc.next();
pstmt.setString(1, name);
pstmt.setLong(2, phoneNum);
pstmt.setString(3, purpose);
java.sql.Timestamp dd = new java.sql.Timestamp(new java.util.Date().getTime());
pstmt.setTimestamp(4, dd);
pstmt.setTimestamp(5, dd);
pstmt.executeUpdate();
con.commit();
可怕的java.sql.Timestamp
類現在是舊類,從JDBC 4.2及更高版本開始不再需要。 對於數據庫工作,請改用OffsetDateTime
,可能在Instant
或ZonedDateTime
調整。
LocalDate
您似乎只想要日期,沒有時間,沒有時區或UTC偏移量。
要表示僅日期,請使用LocalDate
類。
LocalDate ld = LocalDate.parse( "2019-01-23" ) ; // By default, parses strings in standard ISO 8601 format: YYYY-MM-DD.
要捕獲當前日期,請指定一個時區。
ZoneId z = ZoneId.systemDefault() ;
LocalDate ld = LocalDate.now( z ) ;
要生成表示該值的文本,請使用DateTimeFormatter
。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ) ;
String output = ld.format( f ) ;
要在類似於標准SQL類型DATE
的數據類型的列中將LocalDate
對象寫入數據庫:
myPreparedStatement.setObject( … , ld ) ;
從數據庫檢索:
LocalDate ld = myResultSet( … , LocalDate.class ) ;
您只需編寫以下代碼即可根據需要更改格式。
java.sql.Timestamp dd = new java.sql.Timestamp(new java.util.Date().getTime());
String date = new java.text.SimpleDateFormat("dd-MM-yyyy").format(dd);
System.out.println(date);
輸出:27-06-2019
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.