Java将字符串转换为日期

时间:2014-04-14 10:52:50

标签: java date simpledateformat

我有一个数据库日期字段,返回为

resultSet.getDate("startDate");

我想将其格式更改为dd-MMM-yy并保留为日期类型,这意味着我不想将其转换为字符串。

我有以下代码段来更改日期格式

private Date getDate(ResultSet resultSet,Date columnName)
SimpleDateFormat format1 = new SimpleDateFormat("dd-MMM-yy");
String date = 
        new SimpleDateFormat("dd-MMM-yy").format(columnName);

使用相同的日期格式再次将String转换回日期的最佳方法是什么

dd-MMM-yy

5 个答案:

答案 0 :(得分:2)

将String转换回Date使用:

Date date = new SimpleDateFormat("dd-MMM-yy", Locale.US).parse("01-JAN-84");

保留Date数据而不转换为String的一种方法是调用:

long time = date.getTime();

然后您可以使用以下方法将其构建回日期:

Date date = new Date(time);

您可以根据需要随时使用SimpleDateFormat将其格式化为String。当然,这种方法与直接传递Date对象没什么不同。

答案 1 :(得分:2)

  

我想将此格式更改为dd-MMM-yy并保留为日期类型,这意味着我不想将其转换为String。

这是不可能的;你对Date对象代表什么有误解。

Date对象只包含一个时间戳值,并且它不知道打印时应该如何格式化它。因此,您不能拥有具有特定格式的Date对象。

而是在SimpleDateFormat对象上设置格式,然后使用该格式将Date对象转换为文本。

答案 2 :(得分:1)

SimpleDateFormat format1 = new SimpleDateFormat("dd-MMM-yy");
String date = format1.format(columnName);
System.out.println(date);
// back to Date
Date date2 = format1.parse(date);
System.out.println(date2.toString());

如果要自定义其输出,则确实需要使用日期格式。

答案 3 :(得分:1)

你和我在同一条船,我想

convert datestring from one format to another in java simpledate format

经过大量的分析,我放弃了将字符串转换回日期,因为这将导致日期格式与您的系统特定,为了保留日期格式,您应该始终将其保持为字符串类型,我确实转换了我的date type to my date property的字符串类型。

我有这种情况,

我希望获得两个日期之间的间隔,让我们说我的数据库日期格式为"dd-MMM-yy",但您的系统格式为"mm-dd-yyyy",所以为了比较两个日期,您需要转换为你db格式/解析为系统格式,它应该采用相同的格式进行比较,对我来说是有意义的

答案 4 :(得分:0)

我建议您使格式可重复使用

private static SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy");

然后再做

Date converted = sdf.parse(dateString);