如何在 iPhone 上本地化“计时器”

2023-11-25

我需要在 iPhone 上以“hh:mm:ss”格式显示计时器,但希望将其本地化。例如,芬兰在时间组成部分之间使用句点而不是冒号 (hh.mm.ss)。如果我处理的是“时间”,Apple 的 NSDateFormatter 就可以解决问题,但我需要显示远大于 24 的小时数。

我无法使 NSDate/NSDateFormatter 工作,因为当你用几秒钟制作一个时......

NSDate *aDate = [NSDate dateWithTimeIntervalSinceReferenceDate:aTotalSeconds];

...每 86,400 秒(一天的价值)NSDate 会自动递增日期,而小时、分钟和秒会返回到零。我需要让它在任意秒数内工作而不滚动。例如,对于 86,401 秒,我想显示 24:00:01(或芬兰的 24.00.01)。

我的代码可以很好地管理总秒数,所以我遇到的唯一问题是显示。一个简单的...

[NSString stringWithFormat:@"%d%@%d%@%d", hours, sepString, mins, sepString, secs]

...如果我能找到一种方法来获取本地化的“sepString”(时间分量分隔符),就会起作用。 NSLocale 好像没有这个。

想法?


以下是有关此主题的信息,供其他可能试图找出世界不同地区使用什么字符来分隔时间组成部分的人使用。我检查了 iPhone - iOS 版本 4.1 (8B117) 上的所有“区域格式”设置,发现除了七个区域外,所有区域都使用冒号 (hh:mm)。这是其他的(它们的 NSLocaleCountryCode 在大括号中)。

使用句点,hh.mm

• 丹麦语(丹麦){DK}
• 芬兰语(芬兰){FI}
• 塞尔维亚黑山(西里尔文){ME}
• 塞尔维亚黑山(拉丁语){ME}
• 塞尔维亚语(西里尔文){RS}
• 塞尔维亚语(拉丁语){RS}

使用破折号,hh-mm

• 马拉地语(印度){IN}

请注意,印度(不是马拉地语印度)也有国家代码 IN 并且使用冒号。因此,仅检查国家/地区代码是不够的,您还必须查看其他 NSLocale 字段。我还没有浏览所有字段,但我怀疑 NSLocaleScriptCode 或 NSLocaleVariantCode 可能会区分它们。这种复杂性就是为什么Apple应该在SDK中向我们公开这个角色。我确实将其记录在雷达中,所以如果您同意,也请提出请求,请求的数量对于他们决定做什么非常重要。

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

如何在 iPhone 上本地化“计时器” 的相关文章

随机推荐

  • 如何在 Qt 中将一个小部件放置在另一个小部件上

    我在 Qt 中有一个窗口 我正在上面画一幅画 现在我想将进度条放在它上面 我怎样才能做到这一点 我要执行的步骤 创建一个窗口 在窗口的paint事件中绘制图片 然后创建QGridLayout布局 添加您的窗口 显示在其上 假设我想在图片窗口
  • 关于符号的定义和值的问题

    Definition 知道 符号值的定义方式 使用Set or SetDelayed 但如何呢 据我了解 在为符号分配值后 评估器的分配方式没有任何区别 通过使用Set or SetDelayed 可以用函数来说明OwnValues它总是返
  • 如何将 Python StringIO() 对象传递给 ZipFile(),或者不支持?

    我有一个StringIO 文件状对象 我正在尝试将其写入ZipFile 但我得到这个类型错误 coercing to Unicode need string or buffer cStringIO StringI found 这是我正在使用
  • 一台机器上的多个MySQL实例[关闭]

    Closed 这个问题是无关 目前不接受答案 如何在一台机器上配置多个MySQL实例 网上有很多信息 但都不是很有用 我正在寻找一个从头到尾指导我的教程 而不是只有具有多年 MySQL 管理经验的人才能理解的通用信息 我希望得到自给自足的答
  • 将 Hadoop 中的日志记录级别设置为 WARN

    我尝试了多种将 Hadoop 中的日志记录级别设置为 WARN 的方法 但每次都失败了 首先 我尝试通过简单地将所有地方的 INFO 替换为 WARN 来配置 log4j properties 文件 没有结果 接下来 我尝试给Hadoop
  • 使用delphi从PID获取完整路径

    我需要从 PID 获取完整路径 我已经检查过这个问题C Windows 如何从 PID 获取进程路径我写了以下代码 function GetFullPathFromPID PID DWORD string var hProcess THan
  • Bootstrap-Datetimepicker 不工作

    我已经看了两天了 不明白我做错了什么 这是我的项目的一个摆弄 http jsfiddle net dagger2002 RR4hw 这是 HTML div class container div class col sm 6 style h
  • 合并/差异工具,可以在版本控制下的文件中显示作者(支持责备或注释)

    合并文件时 对我来说 显示每一行的作者会很有帮助 是否有支持该功能的差异或合并工具 捆绑的 gitk 工具并不是真正的合并工具 但它显示了带有红色和蓝色的冲突行 并且前面有 您可以在其中任何一个上右键单击 gt 显示此行的起源 转到引入该行
  • 如果 url 包含特定字符串,则使用 htaccess 进行重定向

    我想重定向到不同的域 83answers com如果网址包含forum细绳 就像我的网址是test guru99 com forum xyxyxzz那么它应该重定向到83answers com 字符串论坛可以位于 url 中的任何位置 我尝
  • Web 应用程序中的 LinqToSql 静态 DataContext

    在我遇到的一个 Web 应用程序中 我发现以下代码在处理 LinqToSQL 时处理 DataContext public partial class DbDataContext public static DbDataContext DB
  • 在C++应用程序中检测硬件信息? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想确定硬件信息 如 CPU RAM 硬盘 GPU 等 我的应用程序是用 C 编写的 但基于 Qt 构建 如何获取这些信息 谢谢 EDIT 看起来没有独立于平台的方法 那么 您能
  • Java robots.mouseMove(x, y) 未产生正确的结果

    我最近一直在尝试自动化我编写的一个程序 但遇到了一个问题 robot mouseMove 100 100 不会将鼠标发送到 100 100 我制作了这个简单的程序来展示这一点 new Robot mouseMove 100 100 Syst
  • Android Studio Gradle 错误:多个 dex 文件定义

    我在尝试在 Android Studio 中构建项目时遇到此错误 我正在尝试从 Eclipse 迁移 输出 UNEXPECTED TOP LEVEL EXCEPTION com android dex DexException Multip
  • Spy++ 可以发送消息的替代方案

    Spy 有什么好的替代方案可以向 Windows 发送消息吗 Thanks 窗户侦探既然是开源的 为什么不修改呢
  • 检测 PrintDocument 何时成功打印(不仅仅是预览)

    我正在使用一个进行一些自定义打印打印文档在我的应用程序中 我需要在我们的项目成功打印时进行记录 我最初是通过以下方法实现的 print doc EndPrint o e gt printed callback 为了让我的printed ca
  • Iron-router 服务器端的 Meteor.user()

    如何在服务器端路由上检查用户是否已登录 我会添加对 之前 的检查 但 Metor user 在这里不起作用 提前致谢 附注我已经发现如何让 Meteor user 在服务器端返回 但不适用于iron router 恐怕这是不可能的 我想问题
  • 执行 org.jetbrains.kotlin.gradle.internal.KaptExecution 时发生故障

    突然间 我开始收到此错误 但我不明白为什么如果有人让我知道此错误在哪里 就会有足够的帮助 由于 android studio 的新更新 我所能得到的就是这个 我收到的错误的详细摘要 Task app kaptDebugKotlin ANTL
  • 未处理的异常 java.net.malformedurlexception

    为什么这段代码给了我一个unhandled exception java net malformedurlexception在java中 String u http webapi com demo zip URL url new URL u
  • 如何配置 Vert.x 事件总线以跨 Docker 容器集群工作?

    在我当前的设置中 我使用 Hazelcast 集群管理器的默认多播选项 当我链接容器化 Vertx 模块的实例 通过 Docker 网络链接 时 我可以看到它们正在成功创建 Hazelcast 集群 但是 当我尝试从一个模块在事件总线上发布
  • 如何在 iPhone 上本地化“计时器”

    我需要在 iPhone 上以 hh mm ss 格式显示计时器 但希望将其本地化 例如 芬兰在时间组成部分之间使用句点而不是冒号 hh mm ss 如果我处理的是 时间 Apple 的 NSDateFormatter 就可以解决问题 但我需