You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am able to repro this and it is consistent across distros that have the new spelling.
The knownTimeZoneIdentifiers is interesting. I expect Europe/Kiev to be missing since it was straight-up removed (unfortunately that means that there isn't a non-breaking way to bridge this which is why I made the change that I did), so that's not too interesting. The fact that Kyiv is missing is though. That's populated through CFTimeZoneCopyKnownNames which should just be copying the directory structure in __CFCopyRecursiveDirectoryList though it filters out certain names. Will need to poke around in the filtering to see if it's removing the Kyiv spelling for some reason.
// CoreFoundation/NumberDate.subproj/CFTimeZone.cCFArrayRefCFTimeZoneCopyKnownNames(void) {
CFArrayReftzs;
__CFTimeZoneLockGlobal();
if (NULL==__CFKnownTimeZoneList) {
CFMutableArrayReflist;
/* TimeZone information locate in the registry for Win32 * (Aleksey Dukhnyakov) */#ifTARGET_OS_WIN32list=__CFCopyWindowsTimeZoneList();
#elifTARGET_OS_ANDROIDlist=__CFCopyAndroidTimeZoneList();
#elselist=__CFCopyRecursiveDirectoryList();
#endif// Remove undesirable ancient cruftCFDictionaryRefdict=__CFTimeZoneCopyCompatibilityDictionary();
CFIndexidx;
for (idx=CFArrayGetCount(list); idx--; ) {
CFStringRefitem= (CFStringRef)CFArrayGetValueAtIndex(list, idx);
if (CFDictionaryContainsKey(dict, item) || !__nameStringOK(item)) {
CFArrayRemoveValueAtIndex(list, idx);
}
}
__CFKnownTimeZoneList=CFArrayCreateCopy(kCFAllocatorSystemDefault, list);
CFRelease(list);
}
tzs=__CFKnownTimeZoneList ? (CFArrayRef)CFRetain(__CFKnownTimeZoneList) : NULL;
__CFTimeZoneUnlockGlobal();
returntzs;
}
Env:
Issue:
TimeZone can't be initialized with some identifiers, e.g:
Also, knownIdentifiers method returns truncated identifiers list:
Known Identifiers list
```swift TimeZone.knownTimeZoneIdentifiers // will return the following array:The list above doesn't contain "Europe/Kyiv" or "Europe/Kiev" (old styly) TZ id.
The issue possibly related to this PR
The text was updated successfully, but these errors were encountered: