如何在Java中获取string格式的当前时间戳? “yyyy.MM.dd.HH.mm.ss”
如何获得在Java中的string格式的时间戳? “yyyy.MM.dd.HH.mm.ss”
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Timestamp()); 这是我有,但时间戳()需要一个参数…
更换
 new Timestamp(); 
同
 new java.util.Date() 
 因为Timestamp没有默认的构造函数,或者你可以用下面的方法来实现: 
 new Timestamp(System.currentTimeMillis()); 
 使用java.util.Date类而不是Timestamp。 
 String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()); 
这将以指定的格式获取当前date。
您可以使用java.util.Date而不是Timestamp:
 String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()); 
只使用java.sql进行数据库传输
  java.sqltypes(如java.sql.Timestamp )只能用于java.sql.Timestamp和传出数据库。 立即在Java 8及更高版本中转换为java.timetypes。 
 java.time.Instant 
  java.sql.Timestamp映射到java.time.Instant ,UTC中时间轴上的一个时刻。 
 java.sql.Timestamp ts = myResultSet.getTimestamp( … ); Instant instant = ts.toInstant(); 
时区
 应用所需的/预期的时区来获得ZonedDateTime 。 
 ZoneId zoneId = ZoneId.of( "America/Montreal" ); ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId ); 
格式化的string
 使用DateTimeFormatter生成您的string。 模式代码与java.text.SimpleDateFormat类似,但不完全相同,所以仔细阅读文档。 
 DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "uuuu.MM.dd.HH.mm.ss" ); String output = zdt.format( formatter ); 
这种特殊的格式在确切含义上是模棱两可的,因为它没有任何偏移UTC或时区的指示。
ISO 8601
 如果您对此事有任何意见,我build议您考虑使用标准的ISO 8601格式,而不是自己动手。 标准格式与您的非常相似。 例如: 
  2016-02-20T03:26:32+05:30 。 
  java.time类默认使用这些标准格式,所以不需要指定模式。  ZonedDateTime类通过附加时区名称(明智的改进)来扩展标准格式。 
 String output = zdt.toString(); // Example: 2007-12-03T10:15:30+01:00[Europe/Paris] 
转换为java.sql
 您可以从java.time转换回java.sql.Timestamp 。 从ZonedDateTime提取Instant 。 
新的方法已被添加到旧的类,以方便转换到/从java.time类。
 java.sql.Timestamp ts = java.sql.Timestamp.from( zdt.toInstant() ); 
更合适的方法是在构造函数中指定一个Locale区域作为参数。 下面的例子使用US Locale区域。 date格式是区域设置敏感的,并使用Locale来定制相关用户区域习俗和惯例的信息Locale(Java Platform SE 7)
 String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss", Locale.US).format(new Date());