我有一个数据库日期字段,返回为
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
答案 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);