2012-02-09 145 views
0

我有一个英文工作的应用程序。android更改语言日期

但是,当我将设备的语言更改为法语我得到一个异常。

在活动中我做到以下几点:

send(new Date.tostring()); 

并将其发送给另一个活动,我想拿到追溯。

public method (String stringDate){ 
new Date(date.parse(stringDate)); 
} 

只要我在英语模式下,这工作正常。 但是,当我去设置和语言更改为法语(所以我的应用程序将用法语) 我得到一个illegalargumentException,他不能解析字符串的日期。

任何帮助将不胜感激!

回答

2

而不是发送字符串构造日期,您应该使用getTime()方法发送毫秒作为长的值。它是传递日期并重构它的正确方法。例如,

派:

long value = new Date().getTime(); 

重建:

Date d = new Date(value); 
0

它与在不同语言/语言环境中使用的(可能)不同日期系统有关吗?

例如:

Imagine the following date: 02/04/03 
Which does it mean? 
    2nd of April 2003 (European style) 
    4th of February 2003 (USA style) 
    3rd of April 2002 

(摘自:http://www.w3.org/QA/Tips/iso-date

注:我从来没有为Android开发。这只是猜测