我有一个应用程序,我设置了全球各个城市的时区。我这样做没问题,并且效果很好。当应用程序第一次加载时,它会找到您当前的位置(经纬度&长),并使用设备默认时区设置时区。我需要返回一个字符串中的默认时区,所以我可以显示它。我不想要“GMT”或“EDT”,我希望它的格式为“America/New_York”或“Europe/London”。任何想法?如何将系统时区作为字符串返回?
回答
这听起来像你想的:
NSString *timeZoneName = [[NSTimeZone localTimeZone] name];
返回 “美国/纽约” 对我来说,这里EST时区。
或给予任何NSTimeZone *tz
你可以得到它的[tz name]
,这就是你正在寻找(例如,“亚洲/东京”或“欧洲/伦敦”的传统名称。
看+[NSTimeZone knownTimeZoneName]
可能的名称列表。
我希望帮助
我不认为有一个对象自动关联的时区的物理位置
我看你这个标签的Objective-C,但在C#中,你可以做一些简单的像这样:
public Enum TimeZone
{
[Description("New York")]
EDT,
[Description("Los Angeles")]
PST
}
public static string GetDescription(Enum value)
{
FieldInfo fi= value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
return (attributes.Length>0)?attributes[0].Description:value.ToString();
}
我不知道是多么容易这对于Objective-C来说是便携式的,它确实需要在C#中使用反射库。
那么,重新假设EDT
是与America/New_York
相同的时区。事实并非如此。 :)是的,它们是相同的UTC偏移量,但就您的系统而言,它们是独立定义的。 Cocoa知道他们之间没有强烈的联系。
同样,如果用户给你EDT
,你会返回New_York
吗? Toronto
? Panama
?没有1:1的对应关系。哦,并且:EDT
甚至对于单个UTC偏移量来说都不是唯一的。澳大利亚东部夏令时也缩写为EDT
,可可文档告诉我。
有缩写和长名之间[NSTimeZone abbreviationDictionary]
地图,但同样,他们任意选择的,当有多个协会(如纽约和巴拿马。)
这是什么你想在更广义上完成?你的目标是什么?告诉我们,我们可能会提出一种替代方法来实现它。 :)
有这个一个公认的惯例你可以看一下+ [NSTimeZone knownTimeZoneNames]对于那些使用iOS版是 –
,但他们没有一个1:1的对应关系用缩写。 –
- 1. 将URL-info作为字符串返回?
- 2. 在InOrder序列中将字符串作为字符串返回
- 3. psycopg2将字符串作为字符串返回
- 4. 作为字符串的系统日期
- 5. 如何将时区返回值转换为所需的字符串格式
- 6. 如何将此字符串作为html元素返回?
- 7. 如何将mysql的select函数作为字符串返回?
- 8. 如何将JSON字符串作为JSON在Jersey中返回?
- 9. 如何在Swift中将JSONObject作为字符串返回?
- 10. 如何将数组作为字符串返回?
- 11. 如何将时区作为C#中的字符串?
- 12. Redis在某些操作系统上将字符串保存为缓冲区,而不是其他操作系统?
- 13. 将字符串作为文件返回时输出\ n作为换行符
- 14. 如何将字符串放入SICStus Prolog函数作为变量并将其作为字符串返回?
- 15. 测试系统插件返回的字符串时的意外logiclib行为
- 16. 在Cocoa中,如何使用NSTimeZone将系统时区偏移量作为字符串?
- 17. 将ActionResult呈现为字符串,将其作为ContentResult返回
- 18. 如何将字符串系统集合转换为int?
- 19. 如何将文件系统路径转换为字符串
- 20. 如何返回所有可用的系统时区中GMT
- 21. 如何让系统(...)在运行Ruby脚本之后返回一串字符串作为输出?
- 22. 返回print_r作为字符串(PHP)
- 23. T-sql返回smallint作为字符串
- 24. PHP:SQLite返回值作为字符串
- 25. 如何返回多个字作为一个字符串
- 26. 为什么提示返回有时为空作为字符串
- 27. 如何将字符串转换为字节数组并返回
- 28. 返回字符串值时()
- 29. RabbitListener返回字符串作为ASCII而不是字符串
- 30. 将字符串转换为Double然后返回字符串
完美工作,谢谢。 – tombuarts