OSDN Git Service

Windows 10 1803で和暦のログを西暦にする処理がおかしいのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 10 May 2018 11:25:54 +0000 (20:25 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 10 May 2018 11:25:54 +0000 (20:25 +0900)
KancolleSniffer/LogServer.cs

index 29f03ad..2c1103d 100644 (file)
@@ -184,15 +184,17 @@ namespace KancolleSniffer
                 {\r
                     var data = line.Split(',');\r
                     if (!DateTime.TryParseExact(data[0], Logger.DateTimeFormat, CultureInfo.InvariantCulture,\r
-                        DateTimeStyles.AssumeLocal, out DateTime date))\r
+                        DateTimeStyles.AssumeLocal, out var date))\r
                     {\r
                         // システムが和暦に設定されていて和暦が出力されてしまったケースを救う\r
-                        var wareki = CultureInfo.CreateSpecificCulture("ja-JP");\r
-                        wareki.DateTimeFormat.Calendar = new JapaneseCalendar();\r
-                        if (DateTime.TryParseExact(data[0], Logger.DateTimeFormat, wareki,\r
-                            DateTimeStyles.AssumeLocal, out date))\r
+                        if (data[0][2] == '-')\r
                         {\r
-                            data[0] = Logger.FormatDateTime(date);\r
+                            if (!int.TryParse(data[0].Substring(0, 2), out var year))\r
+                                continue;\r
+                            data[0] = 1988 + year + data[0].Substring(2);\r
+                            if (!DateTime.TryParseExact(data[0], Logger.DateTimeFormat, CultureInfo.InvariantCulture,\r
+                                DateTimeStyles.AssumeLocal, out date))\r
+                                continue;\r
                         }\r
                         else if (DateTime.TryParse(data[0], CultureInfo.CurrentCulture,\r
                             DateTimeStyles.AssumeLocal, out date))\r