如何将字符串对象转换为日期对象?

10

如何将字符串对象转换为日期对象?

我认为我需要做类似这样的事情:

Date d=(some conversion ) "String "
任何帮助都将不胜感激。
8个回答

21
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
    Date date = dateFormat.parse("1.1.2001");

有关详细信息,请参阅:SimpleDateFormat文档


2
我认为你少打了一个或两个'y'。 - Dave
1
你是正确的,谢谢留言。 - KB22

9
日期转字符串是一个相对复杂的解析操作,不能像您尝试的那样进行简单的强制转换。您需要使用DateFormat。它可以很简单,例如:
Date d = DateFormat.getDateInstance().parse("09/10/2009");

但是这会根据运行机器的语言环境设置改变预期的日期格式。如果您有特定的日期格式,可以使用SimpleDateFormat
Date d = new SimpleDateFormat("d MMM yyyy HH:mm").parse("4 Jul 2001 12:08");

请注意,parse方法始终期望一种特定的格式,并且如果收到不同的格式,它将不会尝试猜测可能的含义。

4

3
使用一个与你实际格式相匹配的格式字符串SimpleDateFormat
    SimpleDateFormat sdf = 
        new SimpleDateFormat("yyyy-MM-dd");
    Date d = sdf.parse("2009-10-09"); 

3

java.text.SimpleDateFormat 是继承了 java.text.DateFormat 抽象类的一个类。

 DateFormat MYDate = new SimpleDateFormat("dd/MM/yyyy"); 
 Date today = MYDate.parse("09/10/2009");  

1

你应该使用SimpleDateFormat类解析字符串


0

使用

Date date = DateFormat.getInstance.parse( dateString );

1
这样做完全无法控制字符串的格式,因此这是不太有用的。最好使用SimpleDateFormat,它允许您指定预期的格式。 - Jesper

0

您可以使用此方法将String对象转换为Date对象。这段Java代码已在我的环境中进行了测试并运行。

public static Date parseStringAsDate(String dateStr, String format) throws ParseException
{
    if(null==dateStr || "".equals(dateStr))
        throw new IllegalArgumentException("dateStr must not be null or empty");
    DateFormat df = new SimpleDateFormat(format);
    return df.parse(dateStr);
}

dateStr = "17/05/2017"

format= "dd/MM/yyyy"

日期字符串 = "17/05/2017"
格式 = "dd/MM/yyyy"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接