Skip to content

Write a TimeZoneProvider that can consume zoneinfo files #290

@Manishearth

Description

@Manishearth

Using the (yet unpublished) resb crate, we should write a TimeZoneProvider that can load from zoneinfo64.res bytes.

The format appears to be (see also: https://github.com/unicode-org/icu/blob/48597a4897e8cfea3aad5be7a4e8143c852876a5/icu4c/source/tools/tzcode/tz2icu.cpp#L164):

{
    "Names": ["string"],
    "Regions": ["string ISO region codes with some `001`"],
    "Rules": { "regioncode": intvector },
    "TzVersion": "string",
    "Zones": [ integers,
    // or 
   {
     links?: intvector,
     trans: intvector,
     typeMap: binary data,
     typeOffsets: intvector, 
     transPre32?: intvector,
     transPost32?: intvector,
     finalRaw?: integer,
     finalRule?: String,
     finalYear?: integer
  }]   
}

I don't yet know how that works, but code reading this can be found in https://github.com/unicode-org/icu/blob/48597a4897e8cfea3aad5be7a4e8143c852876a5/icu4c/source/i18n/timezone.cpp#L92

Filing issue now so that this work can be tracked.

Shane mentioned @nekevss was potentially looking into this.

Metadata

Metadata

Assignees

Labels

C-tracking-issueIssues tracking a set of tasks that need to be doneprovidersRelated to time zone providers

Type

No type

Projects

Status

Backlog

Relationships

None yet

Development

No branches or pull requests

Issue actions