【问题标题】:Android time format issue on different devices [duplicate]不同设备上的Android时间格式问题[重复]
【发布时间】:2017-12-24 14:48:46
【问题描述】:
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 字符串格式从服务器获取的。

【问题讨论】:

  • 这可能与每个设备的默认语言环境有关。检查使用java.util.Locale 类,查看Locale.getDefault() 在每台设备上的结果,它们可能会有所不同,因此您需要根据它们的语言环境解析和格式化每一个。另外,我不清楚您从服务器收到的值是什么以及您要转换为什么格式。
  • 转换为“长”类型时间戳。我还有一个疑问..如果我将两种字符串类型都转换为同一时间的时间戳,时间戳是否相同?
  • 如果这个long时间戳是“从纪元开始的毫秒数(1907-01-01T00:00Z”,那么你需要所有的日期和时间字段(天、蒙蒂、年、小时、分钟、秒)(可选秒的分数)和时区)。只有小时和分钟,你不能得到这个时间戳值。
  • 另一个改进的问答解决了问题。 Problem solved. Click here for reference

标签: java android timestamp datetime-format time-format


【解决方案1】:

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

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 将其转换为时间。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2018-01-09
      • 2012-03-17
      相关资源
      最近更新 更多