将字符串转换为日期。可以使用Date.parse吗?

时间:2015-08-12 16:56:47

标签: java string date parsing csv

我正在尝试从文件中读取一行,但是,我一直收到错误说:

Incompatible types: String cannot be converted to Date.

我该如何解决这个问题?

String[] attributes = csvString.split(",");
teamName = attributes[0];
result = attributes[1];
date = (attributes[2]);
opponent = attributes[3];
attendance = Integer.parseInt(attributes[4]);

我也尝试了date = Date.parse(attributes[2]);,但没有效果。

该文件如下所示:

Kronos United,2-3,16/05/2011,Dedfield United,2829

3 个答案:

答案 0 :(得分:0)

您可以使用SimpleDateFormat

在你的例子中,应该可以解决这个问题:

String dateString = "16/05/2011";
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date date = df.parse(dateString);

别忘了

import java.text.SimpleDateFormat;
import java.text.DateFormat;

答案 1 :(得分:0)

由于您要表示日期而非特定时刻,因此您应将匹配的日期表示为LocalDate实例,而不是过时且名称不佳的Date实例

DateTimeFormatter df = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse(text, df);

如果可以,请在整个程序中坚持使用LocalDate,并避免使用已弃用的Date类。如果您需要与需要Date的其他库进行互操作,您可以对其进行转换,但是您已选择目标时区和时间,这不包括在您要解析的数据中。

答案 2 :(得分:0)

您的属性date的数据类型是什么。是日期还是字符串?必须首先从csv读取字符串然后转换为日期。

String date = attributes[2];

然后使用SimpleDateFormat类将其转换为日期。