将字符串转换回java日期

28 浏览
0 Comments

将字符串转换回java日期

我有一个日期字符串的格式如下:\n

\n\"Sun Sep 18 00:05:35 GMT+07:00 2016\"\n

\n我是从媒体存储的拍摄日期中获取到这个格式的。如何在Java/Android中将其转换为日期对象?

0
0 Comments

问题出现的原因是需要将字符串类型的日期转换回Java的Date对象。解决方法是使用SimpleDateFormat类将字符串解析为日期对象,并设置日期的格式。具体代码如下:

SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");

Date date = null;

try {

date = format.parse(dateAsString);

} catch (ParseException e) {

e.printStackTrace();

}

通过观察日期格式的模式,可以看到:

- EEE:星期几的缩写(例如Sun,Mon,Tue,Wed,Thu,Fri,Sat)

- MMM:月份(0到11)

- dd:日期

- HH:小时(00到23)

- mm:分钟(00到59)

- ss:秒(00到59)

- z:时区(在本例中,使用通用时区GMT)

- yyyy:年份

如果需要将这个Date对象传递给Calendar对象,还需要设置时区:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+07:00"));

calendar.setTime(date);

然而,如果时区是可变的,可以从字符串中提取时区部分:

String timeZone = dateAsString.substring(19, 28);

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone(timeZone));

calendar.setTime(date);

需要注意substring()函数的起始和结束索引。

如果你想要使用GMT+07:00时区,可以使用以下格式字符串:

"GMT+07:00"

如果有更新的回答,请参考并测试,让我知道是否有效。

0