gpt4 book ai didi

iOS:格式化和本地化定时器/时间计数器

转载 作者:可可西里 更新时间:2023-11-01 05:56:45 24 4
gpt4 key购买 nike

在我的项目中,我使用了 NSDateFormatter 来正确格式化我的应用程序中显示的日期。更具体地说,这是一个例子:

English: 12:34 am
Arabic: ١٢:٣٤ ص

看起来不错,显示了我需要的数字。但是,我有一个时间计数器/计时器在应用程序中向上/向下计数:

01:31:22 // HH:mm:ss

我如何正确地将此计数器本地化以显示为:

٠١:٣١:٢٢

我检查了 NSDateFormatter,但据我所知,它并不能真正代表这个特定的用例。 NSNumberFormatter 似乎适用于货币和百分比。


为什么 NSDateFormatter 没有意义:

因为它有 NSTimeZone 属性,并且有 am/pm 后缀,当我们想使用计数器时,这些都是无用的。

最佳答案

那么,我想我有东西要给你。我已经创建了一个基本的 NSFormatter 子类,它将为您解决问题。您需要做的就是为其提供一个 NSNumber,其中包含一个 NSTimeInterval

.h 和 .m 在这里可用:https://github.com/WDUK/WDCountdownFormatter

这里是一些使用它的示例代码,是的,它应该遵守语言环境。

WDCountdownFormatter* format = [[WDCountdownFormatter alloc] init];
NSLog(@"70 - %@",[format stringForObjectValue:@(70)]);
NSLog(@"179 - %@",[format stringForObjectValue:@(179)]);
NSLog(@"-10 - %@",[format stringForObjectValue:@(-10)]); // Invalid, will return nil
NSLog(@"0 - %@",[format stringForObjectValue:@(0)]);
NSLog(@"9827193 - %@",[format stringForObjectValue:@(9827193)]);
NSLog(@"1 - %@",[format stringForObjectValue:@(1)]);

生产

// UK English
2012-11-28 23:11:11.453 StackOverflow[28687:c07] 70 - 00:01:10
2012-11-28 23:11:11.456 StackOverflow[28687:c07] 179 - 00:02:59
2012-11-28 23:11:11.457 StackOverflow[28687:c07] -10 - (null)
2012-11-28 23:11:11.458 StackOverflow[28687:c07] 0 - 00:00:00
2012-11-28 23:11:11.458 StackOverflow[28687:c07] 9827193 - 2729:46:33
2012-11-28 23:11:11.459 StackOverflow[28687:c07] 1 - 00:00:01

// Egyptian Arabic
2012-11-28 22:59:54.057 StackOverflow[28400:c07] 70 - ٠٠:٠١:١٠
2012-11-28 22:59:54.659 StackOverflow[28400:c07] 179 - ٠٠:٠٢:٥٩
2012-11-28 22:59:55.473 StackOverflow[28400:c07] -10 - (null)
2012-11-28 22:59:56.464 StackOverflow[28400:c07] 0 - ٠٠:٠٠:٠٠
2012-11-28 22:59:57.311 StackOverflow[28400:c07] 9827193 - ٢٧٢٩:٤٦:٣٣
2012-11-28 23:10:36.657 StackOverflow[28400:c07] 1 - ٠٠:٠٠:٠١

关于iOS:格式化和本地化定时器/时间计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com