Android 上的时间解析问题

2023-12-01

尝试解析时间字符串时出现解析异常02:22 p.m..

我有以下转换函数:

public static long convertdatetotimestamp(String datestring, String newdateformat, String olddateformat){
    SimpleDateFormat originalFormat = new SimpleDateFormat(olddateformat,Locale.ROOT);
    SimpleDateFormat targetFormat = new SimpleDateFormat(newdateformat,Locale.ROOT);
    Date date = null;
    try {
        date = originalFormat.parse(datestring);
        String formattedDate = targetFormat.format(date);
        Date parsedDate = targetFormat.parse(formattedDate);
        long nowMilliseconds = parsedDate.getTime();

        return nowMilliseconds;
    } catch (ParseException e) {
        e.printStackTrace();
        return 0;
    }

}

该方法在另一个具有时间格式的活动中调用"02:22 p.m.". olddateformat and newdateformat是相同的:hh:mm a.

它会导致日志中出现以下错误:

java.text.ParseException:无法解析的日期:“02:22 p.m.” (偏移量 6 处)

如何解决这个问题?时间与上述格式完全相同。


碰巧上午和下午。在盖尔语语言环境中就是这样称呼的。至少在我的 Java 8 上是这样。我不太确定(所有)Android 手机上都会出现这种情况,但您可以用它做一些实验。

String datestring = "02:22 p.m.";
Locale parseLocale = Locale.forLanguageTag("ga");
DateTimeFormatter originalFormat = DateTimeFormatter.ofPattern("hh:mm a", parseLocale);
System.out.println(LocalTime.parse(datestring, originalFormat));

这打印

14:22

正如雨果如此热情而正确地推荐的是他的回答,我使用的是现代 Java 日期和时间 API,因此您将需要 ThreeTenABP 来执行上述代码。看如何在Android项目中使用ThreeTenABP。或者,您可能想尝试与您的过时版本相同的区域设置SimpleDateFormat.

美国西班牙语语言环境在我的 Java 8 上显示了相同的行为,因此您也可以尝试一下:Locale.forLanguageTag("es-US").

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 上的时间解析问题 的相关文章

随机推荐

  • Mac OSx 上的 OpenCL 内核错误

    我编写了一些 OpenCL 代码 该代码在 LINUX 上运行良好 但在 Mac OSX 上失败并出现错误 有人可以帮我确定为什么会发生这些情况吗 错误后显示内核代码 我的内核使用 double 所以我在顶部有相应的编译指示 但我不知道为什
  • 样条图平滑拐角

    我在我的项目中使用 NET 框架中的图表控件 我已将图表控件添加到表单中并进行配置 如下所示 Add a new series chart1 Series Add 1 var series chart1 Series 0 series Ch
  • CDI 事件观察器处理服务器崩溃和重新启动

    我正在尝试使用服务将一个项目持久保存在数据库中 并为后续服务触发 JMS 消息以获取持久保存的项目 以便它可以处理相同的项目 此特定操作发生在单个事务中 但由于有时存在竞争条件 第二个服务无法获取相应的项目 因为它尚未持久化 我的用例非常常
  • 如何根据每次提交的日期将两个分支合并为一个分支?

    假设我有一个 git 存储库 如下所示 merge base A1 A2 A3 A4 branchA B1 B2 branchB 为了让事情变得更简单 假设分支上的提交是对 fileA 的严格修改 而分支上的提交是对 fileB 的严格修改
  • 如何一致地展平 numpy 数组?

    from numpy import array eye matrix x array 1 0 A eye 2 print A dot x prints 1 0 另一方面 B matrix 1 0 0 1 print B dot x prin
  • Google Chrome 扩展:主网页中的dispatchevent

    我的扩展内容脚本中有 从内容脚本中 我尝试在主网页上调度事件 但事件没有发送 什么也没有 为了更加确定 我在所有元素中分派事件 each function i entity console log entity entity trigger
  • c将不同长度的向量绑定到数据帧

    我有一个由两个样本组成的数据框 只有一个样本回答了有关状态焦虑的调查问卷 对于这种情况 我使用以下函数 rowSums 计算了躯体状态焦虑的向量 som lp lt rowSums sample1 c 1 7 8 10 108 na rm
  • 导入模块在 Jupyter Notebook 中有效,但在 IDLE 中无效

    我不明白我做错了什么 我上周重新安装了 Windows 之后我得到了 python 3 6 和我需要的所有库 但是当我尝试在 IDLE 中导入它们时返回错误 ModuleNotFoundError 没有名为 的模块 并且当我使用 pip 在
  • 将 Null-Object 拆箱为原始类型会导致 NullPointerException,可以吗?

    这段代码抛出了一个NullPointerException因为它被拆箱为原始类型并且Long longValue 叫做 对吗 如果您有这样的片段 那就更容易看出 long value Long null But the NullPointe
  • Mvc 4 添加带有脚手架的控制器,给出错误 -“无法检索元数据...”

    尝试添加具有 CRUD 操作和 EF 的控制器时出现以下错误 无法检索 LetLord Models Tenant 的元数据 不支持使用相同的 DbCompiledModel 针对不同类型的数据库创建上下文 相反 为正在使用的每种类型的服务
  • 使用 BlueZ Stack 作为外围设备(广告商)

    Goal 使用 BlueZ 和蓝牙 4LE 适配器创建一个外围设备 宣传 Hello World 的蓝牙等效项 我在哪里 我目前已经安装并下载了 BlueZ 堆栈 我可以使用 hci 工具来识别和查看蓝牙适配器 我已经对 hciconfig
  • Highcharts - 如何减少类别之间的空间?

    我需要减少那个空间 我该怎么做 Planificaci n prioridad 和 gerencia 是类别 里面的数字是按人排列的 去做这个点填充 and 点宽是你想要的 Try this 重要的部分是 plotOptions serie
  • AVAssetReader 和音频队列流问题

    我在使用 AVAssetReader 时遇到问题 无法从 iPod 库获取样本并通过音频队列进行流式传输 我无法找到任何这样的示例 因此我尝试实现自己的示例 但似乎 AssetReader 在音频队列的回调函数处 搞砸了 具体来说 当它执行
  • iPad详细设置页面,如弹出viewController

    我想澄清的第一件事是我不是在谈论 splitview 控制器 我想要一个带有导航控制器的弹出窗口 类似于您点击键盘 gt gt 语言或邮件 gt gt 新帐户时看到的控制器 现在这不是弹出窗口控制器 有可用的标准框架吗 也许我错过了显而易见
  • 为什么 x86 寄存器如此命名?

    例如 累加器命名为EAX并且 当指令指针被调用时IP 我还知道有一些字节称为CL and DH 我知道所有的名字一定有一个约定 但是它是什么 我发现的东西 EAX Accumulator Register EBX Base Register
  • 在 Angular 2 Typescript 中使用 flow.js

    我想将 flowjs 或 ng flow 集成到我的 Angular 2 应用程序中 我已经安装了flowjs使用打字 npm install save dev types flowjs from https www github com
  • MS Access 插入大型记录集速度较慢 (VBA)

    我有一段代码创建一个新表 然后尝试将记录集值复制到该表中 唯一的问题是它非常慢并且访问在执行下面的插入部分时显示加载符号 目前 插入 500 条记录时会出现此问题 但当我获得最终数据集时 我需要插入大约 10 000 到 20 000 条记
  • Ruby on Rails - 制作新应用程序时出错(rb:55:在“require”中)

    我一直在关注 Mike Hartl 的精彩作品Ruby on Rails 教程 我必须提前对 gem 文件和 ruby 的版本做出一些决定 我决定 在让 Heroku 工作出现一些问题之后 我会直接模仿所描述的教程和 ruby 版本 让我去
  • 将 libcutils 链接到本机可执行文件[重复]

    这个问题在这里已经有答案了 我希望我的可执行文件能够调用 libcuils 支持的函数 就像property get 在 Android mk 中我有 LOCAL LDLIBS lcutils ndk build返回 未定义的引用prope
  • Android 上的时间解析问题

    尝试解析时间字符串时出现解析异常02 22 p m 我有以下转换函数 public static long convertdatetotimestamp String datestring String newdateformat Stri