Skip to content

Commit 06a5ad0

Browse files
Various updates (#156)
1 parent d2c76d7 commit 06a5ad0

33 files changed

+109
-135
lines changed

.github/workflows/build.yaml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,20 @@ jobs:
2222

2323
steps:
2424
- name: Checkout
25-
uses: actions/checkout@v3
25+
uses: actions/checkout@v4
2626

2727
- name: Update tzdata on Linux
2828
if: runner.os == 'Linux'
2929
run: sudo apt-get update && sudo apt-get install -y tzdata
3030

31-
- name: Install .NET Core 3.1 SDK
32-
uses: actions/setup-dotnet@v3
33-
if: runner.os == 'Linux'
31+
- name: Install .NET SDKs
32+
uses: actions/setup-dotnet@v4
3433
with:
35-
dotnet-version: 3.1.x
34+
dotnet-version: |
35+
3.1.x
36+
6.0.x
37+
8.0.x
38+
9.0.x
3639
3740
- name: Restore
3841
run: dotnet restore --nologo

.github/workflows/release.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,19 @@ jobs:
1616

1717
steps:
1818
- name: Checkout
19-
uses: actions/checkout@v3
19+
uses: actions/checkout@v4
2020

2121
- name: Update tzdata
2222
run: sudo apt-get update && sudo apt-get install -y tzdata
2323

24-
- name: Install .NET Core 3.1 SDK
25-
uses: actions/setup-dotnet@v3
24+
- name: Install .NET SDKs
25+
uses: actions/setup-dotnet@v4
2626
with:
27-
dotnet-version: 3.1.x
27+
dotnet-version: |
28+
3.1.x
29+
6.0.x
30+
8.0.x
31+
9.0.x
2832
2933
- name: Restore
3034
run: dotnet restore --nologo

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Roslynator.Analyzers" Version="4.2.0" PrivateAssets="All" />
14+
<PackageReference Include="Roslynator.Analyzers" Version="4.12.10" PrivateAssets="All" />
1515
<PackageReference Include="Nullable" Version="1.3.1" PrivateAssets="All" />
1616
</ItemGroup>
1717

src/TimeZoneConverter.DataBuilder/DataExtractor.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static List<string> LoadMapping(string cldrDirectoryPath)
1717
{
1818
var windowsZone = element.Attribute("other")?.Value;
1919
var territory = element.Attribute("territory")?.Value;
20-
var ianaZones = (element.Attribute("type")?.Value.Split() ?? Array.Empty<string>()).ToList();
20+
var ianaZones = (element.Attribute("type")?.Value.Trim().Split() ?? Array.Empty<string>()).ToList();
2121

2222
list.Add($"{windowsZone},{territory},{string.Join(" ", ianaZones)}");
2323
}
@@ -42,7 +42,7 @@ public static List<string> LoadAliases(string cldrDirectoryPath, IDictionary<str
4242
continue;
4343
}
4444

45-
var zones = aliasAttribute.Value.Split();
45+
var zones = aliasAttribute.Value.Trim().Split();
4646
if (zones.Length <= 1)
4747
{
4848
continue;
@@ -83,7 +83,7 @@ public static List<string> LoadAliases(string cldrDirectoryPath, IDictionary<str
8383
continue;
8484
}
8585

86-
if (data[link.Value].Split().Contains(link.Key))
86+
if (data[link.Value].Trim().Split().Contains(link.Key))
8787
{
8888
continue;
8989
}
@@ -111,7 +111,7 @@ public static IDictionary<string, string> LoadTzdbLinks(string tzdbDirectoryPath
111111
var lines = File.ReadLines(Path.Combine(tzdbDirectoryPath, file));
112112
foreach (var line in lines.Where(x => x.StartsWith("Link")))
113113
{
114-
var parts = line.Split(Array.Empty<char>(), StringSplitOptions.RemoveEmptyEntries);
114+
var parts = line.Trim().Split(Array.Empty<char>(), StringSplitOptions.RemoveEmptyEntries);
115115
var target = parts[1];
116116
var link = parts[2];
117117
data.Add(link, target);
@@ -127,7 +127,7 @@ public static IList<string> LoadTzdbTerritories(string tzdbDirectoryPath)
127127
var lines = File.ReadLines(Path.Combine(tzdbDirectoryPath, "zone.tab"));
128128
foreach (var line in lines.Where(x => !x.StartsWith("#")))
129129
{
130-
var parts = line.Split('\t');
130+
var parts = line.Trim().Split('\t');
131131
var territory = parts[0];
132132
var zone = parts[2];
133133

@@ -163,7 +163,7 @@ public static IList<string> LoadRailsMapping(string railsPath)
163163
break;
164164
}
165165

166-
var parts = line.Split("=>");
166+
var parts = line.Trim().Split("=>");
167167
data.Add(parts[0].Trim(' ', '"') + "," + parts[1].TrimEnd(',').Trim(' ', '"'));
168168
}
169169
else if (line == "MAPPING = {")

src/TimeZoneConverter.DataBuilder/Program.cs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,10 @@ public static void Main(string[] args)
4545
var railsMapping = DataExtractor.LoadRailsMapping(railsPath);
4646

4747
// Apply override mappings for zones not yet in the CLDR trunk we pulled in
48-
mapping.Remove("Mountain Standard Time (Mexico),001,America/Chihuahua");
49-
mapping.Add("Mountain Standard Time (Mexico),001,America/Mazatlan");
50-
51-
mapping.Remove("Mountain Standard Time (Mexico),MX,America/Chihuahua America/Mazatlan");
52-
mapping.Add("Mountain Standard Time (Mexico),MX,America/Mazatlan");
53-
54-
mapping.Remove("Central Standard Time (Mexico),MX,America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey");
55-
mapping.Add("Central Standard Time (Mexico),MX,America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey America/Chihuahua");
56-
57-
mapping.Remove("Mountain Standard Time,MX,America/Ojinaga");
58-
mapping.Add("Mountain Standard Time,MX,America/Ciudad_Juarez");
59-
60-
mapping.Remove("Central Standard Time,MX,America/Matamoros");
61-
mapping.Add("Central Standard Time,MX,America/Matamoros America/Ojinaga");
48+
// (None presently)
49+
50+
// Remove the alias for "Etc/Unknown Factory" as it's not a valid zone.
51+
aliases.Remove("Etc/Unknown,Factory");
6252

6353
// Add missing Rails mappings where they make sense
6454
railsMapping.Remove("Arizona,America/Phoenix");
@@ -72,12 +62,6 @@ public static void Main(string[] args)
7262
mapping.Add("Central Europe Standard Time,XK,Europe/Belgrade");
7363
mapping.Add("Central Asia Standard Time,DG,Indian/Chagos");
7464

75-
// Add a few aliases for IANA abbreviated zones not tracked by CLDR
76-
aliases.Add("Europe/Paris,CET");
77-
aliases.Add("Europe/Bucharest,EET");
78-
aliases.Add("Europe/Berlin,MET");
79-
aliases.Add("Atlantic/Canary,WET");
80-
8165
mapping.Sort(StringComparer.Ordinal);
8266
aliases.Sort(StringComparer.Ordinal);
8367

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.0;net462;net8.0</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;net462;net6.0;net8.0;net9.0</TargetFrameworks>
55
<Description>Generates a POSIX time zone string from standard time zone identifiers.</Description>
66
<Authors>Matt Johnson-Pint</Authors>
77
<PackageId>TimeZoneConverter.Posix</PackageId>
88
<PackageTags>timezone;time;zone;time zone;iana;tzdb;olson;timezoneinfo,posix</PackageTags>
99
<PackageProjectUrl>https://github.com/mattjohnsonpint/TimeZoneConverter</PackageProjectUrl>
1010
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1111
<PackageReadmeFile>README.md</PackageReadmeFile>
12-
<Version>4.1.0</Version>
12+
<Version>5.0.0</Version>
1313
</PropertyGroup>
1414

1515
<ItemGroup>
@@ -18,7 +18,7 @@
1818
</ItemGroup>
1919

2020
<ItemGroup>
21-
<PackageReference Include="NodaTime" Version="3.1.6" />
21+
<PackageReference Include="NodaTime" Version="3.2.0" />
2222
</ItemGroup>
2323

2424
</Project>
-57 Bytes
Binary file not shown.
-362 Bytes
Binary file not shown.
-78 Bytes
Binary file not shown.
-143 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)