Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同设备上的Android时间格式问题_Java_Android_Timestamp_Datetime Format_Time Format - Fatal编程技术网

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

Java 不同设备上的Android时间格式问题,java,android,timestamp,datetime-format,time-format,Java,Android,Timestamp,Datetime Format,Time Format,这两次相同,但在不同的设备中看起来格式不同。使用remi note4 time1格式和三星j7 time2格式进行测试。 如果我使用的是默认时间格式为“time1”的设备,那么我无法将字符串格式“time2”转换为时间戳。记录器显示无法解析日期。如何解决这个问题? 注意:要转换的时间是以JSON字符串格式从服务器获取的。您可以先将其转换为相同的格式,然后进行如下解析: String time1= "12:45 PM"; Device1 default format , String time2=

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

您可以先将其转换为相同的格式,然后进行如下解析:

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

您可以使用这个modify_time_2将其转换为时间。

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

这可能与每个设备的默认区域设置有关。检查是否使用java.util.Locale类,在每个设备上查看Locale.getDefault的结果,它们可能会不同,因此您需要根据它们的区域设置对每个设备进行解析和格式化。另外,我不清楚从服务器接收到的值是多少,以及要转换为什么格式。转换为“长”型时间戳。我还有一个疑问。。如果我用相同的时间将两个字符串类型转换为时间戳,时间戳是否相同?如果此长时间戳是从epoch 1907-01-01T00:00Z开始的毫秒数,则需要所有日期和时间字段day、monty、year、hour、minutes、seconds(可选秒的分数)和时区。由于只有小时和分钟,您无法获得此时间戳值。另一个改进的问答解决了此问题。
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");