到目前为止无法解析字符串
Can't parse string to date
服务器 return 我的日期格式 "Sat, 10 Jan 2015 07:24:00 +0100"。
到目前为止,我尝试解析这个字符串,但没有成功。
这是我的解析代码:
SimpleDateFormat format = new SimpleDateFormat("dd.Mm.yyyy");
try {
Date date = format.parse("Sat, 10 Jan 2015 07:24:00 +0100");
tvDate.setText(date.toString());
} catch (ParseException e) {
e.printStackTrace();
}
如果您真的关心时区,您需要做的是将 SimpleDateFormat 实例的字符串格式更改为表示返回的日期字符串的格式。
这是一个例子:
public static Date stringToDate(String dateString) throws ParseException {
final SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
return format.parse(dateString);
}
public static void main(final String[] args) throws ParseException {
Date example = stringToDate(
"Sat, 10 Jan 2015 07:24:00 +0100");
}
您可能还需要考虑 SimpleDateFormat 不是线程安全的,如果使用不当可能会导致意外行为。这是一个非常有用的解释:
http://javarevisited.blogspot.com/2012/03/simpledateformat-in-java-is-not-thread.html
这是您要使用的格式:
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
为什么?
The documentation goes over the symbols,但大部分...
EEE
匹配 shorthand 天
dd
匹配两位数的日期(即 01 到 31)
MMM
匹配三个字母的月份(所以 Jan)
yyyy
匹配四个字母的年份
HH:mm:ss Z
是 shorthand(足够)用于完整的 24 小时制,Z
代表与 GMT 的偏移量。
如果您不关心 +0100,您应该使用这样的格式:
SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss");
E - 是星期几 "Sat"
d - 月中的第几天
M - 是月
y - 是年份
h - 是小时
m - 是分钟
s - 是第二个
服务器 return 我的日期格式 "Sat, 10 Jan 2015 07:24:00 +0100"。
到目前为止,我尝试解析这个字符串,但没有成功。
这是我的解析代码:
SimpleDateFormat format = new SimpleDateFormat("dd.Mm.yyyy");
try {
Date date = format.parse("Sat, 10 Jan 2015 07:24:00 +0100");
tvDate.setText(date.toString());
} catch (ParseException e) {
e.printStackTrace();
}
如果您真的关心时区,您需要做的是将 SimpleDateFormat 实例的字符串格式更改为表示返回的日期字符串的格式。
这是一个例子:
public static Date stringToDate(String dateString) throws ParseException {
final SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
return format.parse(dateString);
}
public static void main(final String[] args) throws ParseException {
Date example = stringToDate(
"Sat, 10 Jan 2015 07:24:00 +0100");
}
您可能还需要考虑 SimpleDateFormat 不是线程安全的,如果使用不当可能会导致意外行为。这是一个非常有用的解释:
http://javarevisited.blogspot.com/2012/03/simpledateformat-in-java-is-not-thread.html
这是您要使用的格式:
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
为什么?
The documentation goes over the symbols,但大部分...
EEE
匹配 shorthand 天dd
匹配两位数的日期(即 01 到 31)MMM
匹配三个字母的月份(所以 Jan)yyyy
匹配四个字母的年份HH:mm:ss Z
是 shorthand(足够)用于完整的 24 小时制,Z
代表与 GMT 的偏移量。
如果您不关心 +0100,您应该使用这样的格式:
SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss");
E - 是星期几 "Sat"
d - 月中的第几天
M - 是月
y - 是年份
h - 是小时
m - 是分钟
s - 是第二个