Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将我的日期格式化为默认格式_Java_Date_Java 8_Format - Fatal编程技术网

Java 如何将我的日期格式化为默认格式

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:

我正在使用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: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());