Java 如何将我的日期格式化为默认格式
我正在使用Java8 我有这样一个sql server类型的日期Java 如何将我的日期格式化为默认格式,java,date,java-8,format,Java,Date,Java 8,Format,我正在使用Java8 我有这样一个sql server类型的日期 2016-01-20T00:00:00.000 默认日期格式为: 新日期()=>2017年8月30日星期三11:03:30 我想将我的日期设置为默认日期 谢谢此代码将完全满足您的要求。仅要求您将值获取为字符串: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS"); String date = "2016-01-20T00:
2016-01-20T00:00:00.000
默认日期格式为:
新日期()=>2017年8月30日星期三11:03:30
我想将我的日期设置为默认日期
谢谢此代码将完全满足您的要求。仅要求您将值获取为
字符串
:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");
String date = "2016-01-20T00:00:00.000";
Date d = new Date(dateFormat.parse(date).getTime());
System.out.println(d);
生成以下输出:
Wed Jan 20 00:00:00 CET 2016
将
LocalDateTime
与其
当然,对于SQL
PreparedStatement
,您可以简单地调用setDate
,而无需通过字符串绕道。没有默认格式。。。您需要使用DateTimeFormatter Java中的日期没有格式通常推荐的方法是:为自己准备一个符合JDBC 4.2的数据库驱动程序。然后,根据您对时区的要求,将Instant
、ZonedDateTime
或LocalDateTime
从ResultSet
传输到PreparedStatement
。然后就不用担心格式了,还要避免过时的Date
类。在我之前的评论中提到的现代课程更适合使用。这个问题还不清楚。您正在分析字符串吗?是否从数据库中检索日期时间对象,如果是,具体是什么类型?你想抓住当下的时刻吗?此外,所有这些都已在堆栈溢出时处理。在发布之前,请始终彻底搜索堆栈溢出。请不要教年轻人使用过时的长类SimpleDateFormat
和Date
。今天我们的情况好多了。我还以为询问者要求输出的格式是2016-01-20T00:00:00.000
。不过,我承认这一点非常不清楚。@XtremeBaumer,问题显然是关于Java8的。虽然我们可以讨论你的回答是否有助于回答另一个问题,但我想它不在这里。当然对Java版本没有任何保留。在Java6和Java7中有一个针对Java8的新API(因此您可以使用LocalDateTime
)。对于Java5,有一个(尽管处于维护模式,但仍然是比旧的Date
和simpleDataFormat
API更好的替代方案)。我知道仍然有很多遗留代码无法迁移,因此我们仍然需要使用SimpleDateFormat
一段时间。但我们也很高兴知道,我们有更好的选择,不仅是最新版本的Java。@Hugo我们可以不用SimpleDataFormat
。在java.time中编写新代码,最后通过添加到遗留类中的新方法转换为旧代码所需的遗留类型。
String s = LocalDateTime.now().toString(); // ISO standard representation
// LocalDateTime to old Date:
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
// Old Date holding time to LocalDateTime:
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(),
ZoneId.systemDefault());