将字符串格式转换为日期

时间:2016-02-07 10:14:50

标签: java date

我正在尝试将字符串转换为Java中的日期。我能够转换,但我没有得到所需的输出。

我正在使用该代码。

String="2016-02-20"
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date12 = formatter.parse(date)

我得到以下输出:

Sat Feb 20 00:00:00 IST 2016

但是我想要与字符串相同的输出但只想要日期类型, 喜欢:

2016-02-20.

我该怎么办呢。

3 个答案:

答案 0 :(得分:0)

如果您想要相同的输出,那么为什么要将它首先转换为Date对象? Date对象保存日期和时间。

来自日期的JAVADoc:

  

类Date表示特定的时刻,精确到毫秒。

你不能从中消除时间。

答案 1 :(得分:0)

您也可以使用SimpleDateFormat作为输出:

String onlyDate = formatter.format(date12);

如果您想将此日期保存到mysql,您还可以使用setDate的方法PreparedStatement

答案 2 :(得分:0)

java.time

您应该使用Java 8及更高版本中内置的java.time框架。避免使用麻烦的旧java.util.Date/.Calendar类。

void merge_sort(int a[], int lo, int hi) { if (low >= hi) return; //Nothing to sort int mid = (lo+hi)/2; //The guy between lo and hi. merge_sort(a,lo, mid); //sort the left merge_sort(a, mid, hi); //sort the right practiceMerge(a, lo, mid, hi); //This merges the array }

LocalDate类表示没有时间或时区的仅限日期的值。

您的输入字符串已采用标准ISO 8601格式。默认情况下,此格式用于java.time。所以不需要指定解析模式。

void main() {
   //Bla bla bla
   merge_sort(songs, 89, 250); //Only sort some songs
}

LocalDate实现在生成日期值的文本表示时使用相同的ISO 8601格式。

LocalDate localDate = LocalDate.parse( "2016-02-20" );

对于其他格式,请搜索StackOverflow,了解如何在java.time.format包中使用toString

数据库

要传输到数据库,请使用JDBC。希望JDBC驱动程序将更新为直接使用java.time类型。在此之前,转换为java.sql类型。

String output = localDate.toString();  // Emits: "2016-02-20"