如何从Java中的String中获取日期和时间?
我得到了像“Wed,08 Feb 2012 09:06:41 +0000”的字符串。 我想取“日期”2012年2月8日和“时间”09:06。如何从Java中的String中获取日期和时间?
我怎样才能得到它?请帮帮我。
在此先感谢.. :)
试试这个,
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss");
try
{
Date date = (Date)sdf.parse("Wed, 08 Feb 2012 09:06:41 +0000");
System.out.println(date);
SimpleDateFormat day = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat time = new SimpleDateFormat("HH:mm");
System.out.println(day.format(date));
System.out.println(time.format(date));
}
catch (ParseException e)
{
e.printStackTrace();
}
它会肯定工作。
非常感谢你Pratik。 – Hardik 2012-02-08 12:30:52
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("EEE, dd MMM yyy HH:mm:ss Z");
date = (Date)formatter.parse(str_date);
看看这里http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html日期和时间模式。
Date d = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").parse(yourString);
您可以使用SimpleDateFormat。 SimpleDateFormat是一个以区域敏感的方式格式化和解析日期的具体类。它允许格式化(日期 - >文本),解析(文本 - >日期)和规范化。
你只需要一个正确的格式:
"EEE, d MMM yyyy HH:mm:ss Z"
如果我删除Z.比它会工作...... BTW非常感谢。 – Hardik 2012-02-08 12:31:38
@Hardik:如果你省略Z,那么解析器将忽略字符串中的时区,并且不会产生确切的时间。您会看到“正确的”结果,但结果日期对象与生成字符串的日期对象不同。我认为你需要深入了解Java如何存储时间。这是关于这个的很好的[文章](http://www.odi.ch/prog/design/datetime.php)。 – Mersenne 2012-02-08 12:51:06
烨巴迪,我明白........非常感谢老兄。 – Hardik 2012-02-08 13:00:35
使用下面的语句:
DateFormat fmt = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");
Date date = (Date)fmt.parse("Wed, 08 Feb 2012 09:06:41 +0000");
“E,DD MMM YYYY HH:MM:SS Z” 这是你的解析器的模式。
“Wed,08 Feb 2012 09:06:41 +0000”实际上是您的日期字符串。
现在,日期对象包含结构化日期,您可以提取所需的所有内容。
您可以使用SimpleDateFormat
要显示08 - 2月 - 2012可以作为SimpleDateFormat的
SimpleDateFormat m_sdFormatter = new SimpleDateFormat("dd-MMM-yyyy");
m_sdFormatter.format(your date);
要显示 “时间” 09:06。你可以SimpleDateFormat的作为
SimpleDateFormat m_sdFormatter = new SimpleDateFormat("HH:mm");
m_sdFormatter.format(your date);
首先解析字符串转换为Date
,然后格式化日期到你需要的字符串:
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
try {
Date date = (Date)sdf.parse("Wed, 08 Feb 2012 09:06:41 +0000");
System.out.println(date);
SimpleDateFormat day = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat time = new SimpleDateFormat("HH:mm");
System.out.println(day.format(date));
System.out.println(time.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
输出:
Wed Feb 08 09:06:41 GMT 2012
8-Feb-2012
09:06
希望这会有所帮助。 http://stackoverflow.com/questions/8699587/android-java-time-format – Vaandu 2012-02-08 11:58:31
很多明确的正确答案。请接受一个,不要离开我们:) – Mersenne 2012-02-08 12:44:27