android 解析中英文字符串,java – 如何在android中解析字符串“Mon Aug 08 16:44:19 EAT 2016”到目前为止...

private void parseDate() {

String p_localDateTime = "Mon Aug 08 16:44:19 EAT 2016";

SimpleDateFormat lv_formatter,lv_parser;

String lv_localTimeZone ="";

lv_localTimeZone="EAT";

Date lv_localDate = null;

lv_parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");

//lv_parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");

//lv_parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");

lv_parser.setTimeZone(TimeZone.getTimeZone(lv_localTimeZone));

try {

lv_localDate = lv_parser.parse(p_localDateTime);

} catch (ParseException e) {

e.printStackTrace();

}

System.out.println("convertLocalTimeToUTC: ");

}

我试图用3种不同的区域格式’z’,’zzz’,’zzzz’来解析这个日期但是所有抛出java.text.ParseException:Unparseable date:“Mon Aug 08 16:44:19 EAT 2016”(偏移20)

解决方法:

您正在使用现在由java.time类取代的麻烦的旧日期时间类.

使用java.time

避免将EAT用作区域.切勿使用3-4字母缩写,例如EST或IST,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!).指定proper time zone name.在此特定情况下,java.time能够将其转换为Africa/Nairobi区域.

String input = "Mon Aug 08 16:44:19 EAT 2016";

DateTimeFormatter f = DateTimeFormatter.ofPattern ( "EEE MMM dd HH:mm:ss z uuuu" ).withLocale ( Locale.US );

ZonedDateTime zdt = ZonedDateTime.parse ( input , f );

转储到控制台. toString方法生成标准ISO 8601格式的String,通过在括号中附加区域名称进行扩展.当您需要将日期时间值序列化为文本时,这些标准格式是更好的选择.

System.out.println ( "zdt: " + zdt );

zdt: 2016-08-08T16:44:19+03:00[Africa/Nairobi]

关于java.time

java.time框架内置于Java 8及更高版本中.这些类取代了旧的麻烦的日期时间类,如java.util.Date,.Calendar,& java.text.SimpleDateFormat中.

要了解更多信息,请参阅Oracle Tutorial.并搜索Stack Overflow以获取许多示例和说明.

许多java.time功能都被反向移植到Java 6& 07年7月7日进一步适应ThreeTenABP Android(见How to use…).

ThreeTen-Extra项目使用其他类扩展了java.time.该项目是未来可能添加到java.time的试验场.您可以在这里找到一些有用的课程,如Interval,YearWeek,YearQuarter等.

标签:java,date,android,android-studio

来源: https://codeday.me/bug/20190608/1199349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值