日期分析器无法识别字符串"UTC"。如果你需要使用这个常数来定义UTC,那么下面的日期格式应该适用于你的
a)。我有3个字符串表示日期、时间和时区;例如:
String date = "2012-09-04";
String time = "01:30:17";
String timeZone = "UTC";
我想用这些字符串创建一个日期。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
Date createdDate = formatter.parse(date + " " + time + " " + timeZone);
不起作用-我收到消息"无法计算的日期"。
b) 。如何获取特定时区的Android设备日期?我找到了一种将当前时间转换为UTC时区的方法:
Calendar cldr = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateInUTCTimeZone = sdf.format(cldr.getTime());
但我希望结果是Date对象。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss 'UTC'");
但我强烈建议你使用rfc3990标准:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
然后将您的日期表示为以下字符串(2012-09-04T13:24:59Z)。
最后,如果您想将UTC中的日期表示为某个时区,请在格式化之前使用以下内容:
sdf.setTimeZone(TimeZone.getDefault()); //Choose the TimeZone you need