不同设备上的Android时间格式问题

问题描述:

String time1= "12:45 PM"; Device1 default format , 
String time2= "12:45 p.m."; Device2 default format 

这两个时间是相同的,但在不同的设备中看起来不同的格式。用remi note4(time1格式)和Samsung j7(time2格式)进行测试。 如果我使用默认时间格式'time1'的设备,那么我不能将字符串格式'time2'转换为timestamp。记录器显示无法解析日期。如何解决这个问题? 注意:要转换的时间是以JSON字符串格式从服务器获取的。不同设备上的Android时间格式问题

+0

可能这与每个设备的默认语言环境有关。检查使用'java.util.Locale'类,在每个设备上查看'Locale.getDefault()'的结果,它们可能会有所不同,所以你需要根据它们的区域设置来解析和格式化每一个设备。另外,我不清楚从服务器接收的价值以及要转换的格式。 – 2017-07-19 11:48:05

+0

转换为'长'型时间戳。我还有一个疑问..如果我同时将两个字符串类型转换为时间戳,时间戳会是相同的吗? –

+0

如果这个“long”时间戳是“从历元('1907-01-01T00:00Z'”)开始的毫秒数,那么你需要所有的日期和时间字段(日,星期,年,时,分,秒)秒)和时区)**只有**小时和分钟,你不能得到这个时间戳值 – 2017-07-20 11:58:38

我的另一个问题得到了以下问题的确切答案。如果有人想知道请参考以下链接。Refer following link

您可以先将其转换为相同的格式,那么你会喜欢解析:

String time1= "12:45 PM"; 
String time2= "12:45 p.m."; 

String modify_time_2 = time2.replace("p.m.","PM").replace("pm","PM").replace("p m","PM"); 

您可以使用此modify_time_2其转换时间。