如何将java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S)格式化为日期(yyyy-MM-dd HH:mm:ss)
好吧,我有一个使用Date
的细节,因为我从我的DataBase和变量“fecha”(日期)中获取一个Object来自同一个对象我得到一个java.sql.Timestamp
,所以格式化是毫秒,但我不希望出现毫秒。 所以我需要将我从数据库接收的日期格式化为没有毫秒数的新日期。
这是对象Factura:
public class Factura implements java.io.Serializable { private FacturaId id; ... private boolean activo; private Date fecha; }
在映射到DB的xml中,我有这个变量“fecha”的代码:
在数据库中,该列是fecha DATETIME
。
当我从我的数据库中获得一个对象Factura
时,我得到了这种日期2013-10-10 10:49:29.0
但是我希望它没有.0
(毫秒)。
我试过这个( factura
是Factura
对象):
try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date fechaNueva = null; String fechaStr = factura.getFecha().toString(); int tamaño = fechaStr.length()-2; fechaStr = fechaStr.substring(0, tamaño); //I get a string without the miliseconds fechaNueva = format.parse(fechaStr); } catch(ParseException ex) { ... }
但fechaNueva
给了我Thu Oct 10 10:49:29 CDT 2013
我只想2013-10-10 10:49:29
,你能帮帮我吗?
非常感谢,提前。
您根本不需要使用子字符串,因为您的format
不包含该信息。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String fechaStr = "2013-10-10 10:49:29.10000"; Date fechaNueva = format.parse(fechaStr); System.out.println(format.format(fechaNueva)); // Prints 2013-10-10 10:49:29
日期时间对象不是String
java.sql.Timestamp类没有格式。 它的toString方法生成一个带有格式的String。
不要将日期时间对象与可能表示其值的String混淆。 日期时间对象可以解析字符串并生成字符串,但本身不是字符串。
java.time
首先从有问题的旧遗留日期时间类转换为java.time类。 使用添加到旧类的新方法。
Instant instant = mySqlDate.toInstant() ;
失去你不想要的一秒。
instant = instant.truncatedTo( ChronoUnit.Seconds );
分配时区以根据Instant使用的UTC进行调整。
ZoneId z = ZoneId.of( "America/Montreal" ) ; ZonedDateTime zdt = instant.atZone( z );
生成一个接近所需输出的String。 用空格替换中间的T
DateTimeFormatter f = DateTimeFormatter.ISO_LOCAL_DATE_TIME ; String output = zdt.format( f ).replace( "T" , " " );
- 获取两个日期之间的日期列表
- 是否可以获取具有特定格式的java.util.Date对象?
- 基于区域设置的Joda-Time DateTime格式
- 如何在Java DateUtils.parseDate中识别Zulu时区?
- 如何将System.nanoTime的结果转换为Java中的日期?
- validation时间戳格式yyyy-MM-dd’T’HH:mm:ssZ在java中?
- String – > java.util.Date – > java.sql.Date(带时间戳)
- 推土机:列表的字符串到目前的字段级别映射
- 如何在Android中解析“yyyy-MM-dd’T’HH:mm:ss.SSSXXX”日期格式到简单?