Java Android SimpleDataFormat分析错误
我想解析这个字符串:Thu Jan 01 00:00:58 CET 1970 我使用这个模式:EEE-MMM-dd-hh:mm:ss-z-yyyy 但我有一个例外: java.text.ParseException:不可解析日期:“1970年1月1日星期四00:00:58 CET”(偏移量20处) 堆栈跟踪: java.text.ParseException:不可解析日期:“1970年1月1日星期四00:01:18 CET”(偏移量20处) W/System.err:at java.text.DateFormat.parse(DateFormat.java:571) 系统环境:android studio 2.0,编译DK23版,buildToolsVersion“23.0.3”Java Android SimpleDataFormat分析错误,java,android,Java,Android,我想解析这个字符串:Thu Jan 01 00:00:58 CET 1970 我使用这个模式:EEE-MMM-dd-hh:mm:ss-z-yyyy 但我有一个例外: java.text.ParseException:不可解析日期:“1970年1月1日星期四00:00:58 CET”(偏移量20处) 堆栈跟踪: java.text.ParseException:不可解析日期:“1970年1月1日星期四00:01:18 CET”(偏移量20处) W/System.err:at java.text.D
设备:HTC One M7,android 5.0.2您应该创建一个测试用例并演示其行为。我是为你做的:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.junit.Test;
public class DateParseTest {
@Test
public void testDateFormat() {
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.US);
try {
Date date = dateFormat.parse("Thu Jan 01 00:00:58 CET 1970");
System.out.println("parsed date:" + date);
} catch (ParseException ex) {
ex.printStackTrace();
}
}
}
使用显式区域设置locale.US。在本例中,匈牙利语是默认语言环境,您必须以匈牙利语格式解析日期字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", new Locale("HU"));
String dateString = "P máj. 01 01:00:58 CET 1970";
Date date = dateFormatHu.parse(dateString);
您应该创建一个测试用例,并演示其行为。我是为你做的:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.junit.Test;
public class DateParseTest {
@Test
public void testDateFormat() {
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.US);
try {
Date date = dateFormat.parse("Thu Jan 01 00:00:58 CET 1970");
System.out.println("parsed date:" + date);
} catch (ParseException ex) {
ex.printStackTrace();
}
}
}
使用显式区域设置locale.US。在本例中,匈牙利语是默认语言环境,您必须以匈牙利语格式解析日期字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", new Locale("HU"));
String dateString = "P máj. 01 01:00:58 CET 1970";
Date date = dateFormatHu.parse(dateString);
请参考这篇文章
关于1970年1月1日的所有问题都进行了详细解释 请参考这篇文章
关于1970年1月1日的所有问题都进行了详细解释 我得到了parseexception,如我的问题帖子中的stacktrace和系统环境。在android emulator中,这是可行的,但在我的设备上,您的默认区域设置是什么?在单元测试中添加一条语句:Locale.getDefault()并查看它告诉您的内容。我的默认区域设置是hu_HUI got parseexception,就像我的问题帖子中的一样。在android emulator中,这是可行的,但在我的设备上,您的默认区域设置是什么?在单元测试中添加一条语句:Locale.getDefault(),看看它告诉你什么。我的默认语言环境是hu_hu你试过这个吗