我正在try 查找时区标识符的最大长度.这是用作时区名称的字符串(例如"美国/纽约").TZ数据库没有任何帮助;我找不到实现细节.

Microsoft (.NET Framework 4.5) suggests a max length of 32个,但这似乎是他们注册的一个限制.

libc points to a limit called "_POSIX_TZNAME_MAX", which is 3 characters long,但这是符合POSIX的绝对最低要求.通常,我猜实现会使用更多.

所以真正的问题是:安全存储时区"tzname"/标识符名称的可接受字符串长度是多少?

推荐答案

为什么不使用一个不在乎长度的容器——比如std::string

现在,碰巧我最近正在使用TZ db,它是以常见的csv格式提供的(例如这里的in a file from Boost),但在Boost源代码中也使用了相同的格式.

有了这些数据,我看到的最大长度是28:

R> library(RcppBDT)                      # R package interfacing Boost Date_Time
Loading required package: Rcpp
R> tz <- new(bdtTz, "America/Chicago")   # init. an object, using my default TZ
R> tznames <- tz$getAllRegions()         # retrieve list of all TZ names
R>
R> length(tznames)                       # total number of TZ identifiers
[1] 381
R>
R> head(tznames)                         # look at first six
[1] "Africa/Abidjan"     "Africa/Accra"       "Africa/Addis_Ababa" 
[4] "Africa/Algiers"     "Africa/Asmera"      "Africa/Bamako"     
R>
R> summary(sapply(tznames, nchar))       # numerical summary of length of each
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      9      13      15      15      17      28 
R>
R> tznames[ nchar(tznames) >= 26 ]       # looking at length 26 and above
[1] "America/Indiana/Indianapolis" "America/Kentucky/Louisville"  
[3] "America/Kentucky/Monticello"  "America/North_Dakota/Center" 
R> 

我们还可以查看柱状图:

R> library(MASS)
R> truehist(sapply(tznames, nchar), 
+           main="Distribution of TZ identifier length", col="darkgrey")
R>

enter image description here

这使用了我在RcppBDT包的SVN repo on R-Forge中,但在包的CRAN version中还没有的代码.

Database相关问答推荐

如何正确创建mongo模型和客户端?

java嵌入式库磁盘键值数据库

使用python为组中的每个元素添加一个序列号

如何在 sql server 2005 中获取到数据库的详细连接列表?

何时将数据库称为嵌入式数据库?

Oracle 数据库统计信息应该多久运行一次?

SQL-Server:还原数据库时,SQL 命令行中的 NOUNLOAD 和 STATS 是什么意思?

如何从表列中删除唯一约束?

postgresql 在 where 子句中使用 json 子元素

来自外部源的 Django 用户和身份验证

在 Rails 中销毁/删除数据库

在 Heroku 生产站点上清除 Rails 应用程序数据库

表格字段可以包含连字符吗?

Redis Pub/Sub 和 Redis Stream 之间的主要区别是什么?

如何删除除了postgres中的少数数据库之外的所有数据库

复式记账的关系数据模型

关系未更新的 NSFetchedResultsController

使用 Django 的复合/复合主/唯一键

SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects

如果值不为空,则用于更新数据库的 Sql 查询?