MS_InternationalizationItems - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒãã®ä»ãéçºã®è²ã ïŒ
æ¬ã³ã³ãã³ãã«é¢é£ããã³ã³ãã³ã
ã¢ããªã±ãŒã·ã§ã³ã®åœéå察å¿ãšã¯
- å€èšèªå
- å°åå
ãè¡ãå®è¡ç°å¢ããŠãŒã¶ã«ãã£ãŠã¢ããªã±ãŒã·ã§ã³ã®åäœãåãæ¿ããããšã§ããã
以äžãµã€ãã§ã¯
- å€èšèªå - Wikipedia
http://ja.wikipedia.org/wiki/%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%8C%96
ããããœãããŠã§ã¢ããè€æ°ã®ãèšèªãæåãæåçæ £ç¿ãæ··åšãããŠæ±ãããšãã§ããããã«ããããšã§ãããã
ãšè¡šçŸãããŠããã
è£è¶³ïŒi18n / L10n / g11n ã®åºå¥ïŒ: åœéåã®æèã§ã¯
3 ã€ã®èªã䜿ãåããããã®ã§æŽçããŠããã
ç¥èš èª æå³ 誰ãããã i18n InternationalizationïŒåœéåïŒ åãæ¿ããããäœãã«ãã éçºè L10n LocalizationïŒå°ååïŒ åèšèªã®ãªãœãŒã¹ãçšæãã 翻蚳è ã»çŸå°æ åœ g11n Globalization äžèšã®ç·ç§° ïŒ i18nïŒåœéåïŒâŠ ããŒãã³ãŒããããæèšããªãœãŒã¹ã«è¿œãåºã æžåŒã CurrentCulture ã«å§ãã â äžåºŠããã°ãèšèªãå¢ããŠãäœæ¥ã¯å¢ããªã L10nïŒå°ååïŒâŠ ja.resx, en.resx ãçšæãã â èšèªã®æ°ã ãäœæ¥ãå¢ããi18n ãåŸããããã®ã¯éåžžã«é«ãã€ã
ïŒå šç»é¢ã»å šã¡ãã»ãŒãžãæŽãåºãå¿ èŠãããïŒããã
ãä»ã¯æ¥æ¬èªã ããã§ããå°æ¥ã®å¯èœæ§ããããªã
æåãããªãœãŒã¹åããŠããããšããã®ãå®åäžã®å€æã«ãªãã
èŠä»¶ã®äŸã以äžã«ç€ºãã
- ããã±ãŒãžã»ãœãããå€èšèªå¯Ÿå¿ããŠããã
é©çšå 次第ã§ã¢ããªã±ãŒã·ã§ã³å šäœã®èšèªãåãæ¿ããã
-
èšèª
-
ã¯ã©ã€ã¢ã³ãåŽ
- ãŠãŒã¶ã UI 衚瀺ããã°åºåãããã¡ãã»ãŒãžãªã©ã®èšèªãéžæã§ããã
- åäœç°å¢(OS ã®èšèªããã©ãŠã¶èšå®ãªã©)次第ã§è¡šç€ºèšèªãèªåçã«åãæ¿ããã
-
ãµãŒãåŽ
- 管çè ã UI 衚瀺ããã°åºåãããã¡ãã»ãŒãžãªã©ã®èšèªãéžæã§ããã
- åäœç°å¢(OS ã®èšèªããã©ãŠã¶èšå®ãªã©)次第ã§è¡šç€ºèšèªãèªåçã«åãæ¿ããã
-
-
UI èŠçŽ
- æåå¹ çãå€ããã®ã§ãã³ã³ãããŒã«ã®ãµã€ãºã»é 眮ã倿Žãããã
- ã¢ã©ãã¢èªç°å¢ã§ã¯æåæ¹åãå³ããå·Šã«ãªããã倿Žéã倧ããã
-
ã¯ã©ã€ã¢ã³ãåŽ
- ã¯ã©ã€ã¢ã³ãåŽãŠãŒã¶ã®èšå®ã§åãæ¿ããã
- åäœç°å¢(OS ã®èšèªããã©ãŠã¶èšå®ãªã©)次第ã§è¡šç€ºèšèªãèªåçã«åãæ¿ããã
-
ãµãŒãåŽ
- ãµãŒãåŽã®ãŠãŒã¶ã®èšå®ã§åãæ¿ããïŒãµãŒãåŽã®ãã°åºåçïŒã
- ã¯ã©ã€ã¢ã³ãåŽã®ãŠãŒã¶ã®èšå®ã§åãæ¿ããïŒã¯ã©ã€ã¢ã³ãåŽã«åºåãããæååçïŒã
- åäœç°å¢(OS ã®èšèªããã©ãŠã¶èšå®ãªã©)次第ã§è¡šç€ºèšèªãèªåçã«åãæ¿ããã
è£è¶³ïŒãã°ã®èšèªã¯åºå®ããïŒ: ããµãŒãåŽã®ãã°åºåãã®èšèªã
ã¯ã©ã€ã¢ã³ãã«åãããªããšããç¹ããåŸè¿°ã®
ãã¿ãŒãŠãŒã¹ã§ã匷調ãããŠããéèŠãªæéã§ããããã°ãã¯ã©ã€ã¢ã³ãã®ã«ã«ãã£ã§åºåãããš ã»åãé害ãèšèªããšã«å¥ã®æèšã§èšé²ããã ã»grep / éèš / ã¢ã©ãŒã ã«ãŒã«ãæ©èœããªã ã»èª¿æ»ããéçšè ãèªããªãèšèªã§èšé²ããããã°ã¯ãè±èªãŸãã¯éçšè ã®èšèªãã«åºå®ãããã
ããã«é²ã㊠**æ§é åãã°ïŒã¡ãã»ãŒãž ãã³ãã¬ãŒã + ãã©ã¡ãŒã¿ïŒ**ã«
ããã®ãçŸåšã®å®ç³ã§ããã// æèšã§ã¯ãªããã³ãã¬ãŒããšããŠèšé²ãããïŒSerilog / ILoggerïŒ _logger.LogWarning("Order {OrderId} rejected: {Reason}", id, reason);
æ¬é ã§ã¯åœéå察象ãšãªãé ç®ã瀺ãã
ããããã®ã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ã«
åãããŠå¯Ÿå¿ããé
ç®ãåæšéžæããã
é ç®ã®éžæã¯ä»¥äžãåèãšããã
- åœéåãšå°åå - Wikipedia
http://ja.wikipedia.org/wiki/%E5%9B%BD%E9%9A%9B%E5%8C%96%E3%81%A8%E5%9C%B0%E5%9F%9F%E5%8C%96 - ã¢ããªã®ã°ããŒãã«åã®ã¬ã€ãã©ã€ã³ãšãã§ã㯠ãªã¹ã
https://learn.microsoft.com/ja-jp/windows/apps/design/globalizing/guidelines-and-checklist-for-globalizing-your-app
æèšãå€éšãªãœãŒã¹ãã¡ã€ã«çã«å®çŸ©ãæèšã®
ã¡ã³ããã³ã¹ãèšèªã®å¢æžãè¡ããããããã
以äžã«æèšã®åœéå察象é ç®ãæŽçããã
UI èŠçŽ ã«ã¯ä»¥äžã®æ§ãªé ç®ãããïŒã¯ã©ã€ã¢ã³ãåŽïŒã
- ç»é¢ã¿ã€ãã«
- ã©ãã«ããã¿ã³ãã©ãžãªã»ãã¿ã³ããã§ãã¯ã»ããã¯ã¹ãªã©ã®ããã¹ã
- ããã¹ãã»ããã¯ã¹äžã®èª¬ææãçŽ¹ä»æãªã©ã®æç«
- ããããããŠã³ããªã¹ãã»ããã¯ã¹ã®éžæåè£
- ã°ãªãã(衚)ã®ããããå€
â» åæå€ãšããŠéçã«çšæããæèšãåçã«çœ®ãæããæèšãããã
ã¡ãã»ãŒãžã«ã¯ä»¥äžã®æ§ãªé ç®ãããã
-
ç»é¢è¡šç€º
- 確èªã¡ãã»ãŒãž
- ãšã©ãŒã»ã¡ãã»ãŒãž
- ããŒã«ã»ããã
-
ãã°åºåç
- æ å ±ã¡ãã»ãŒãž
- ã¯ãŒãã³ã°ã»ã¡ãã»ãŒãž
- ãšã©ãŒã»ã¡ãã»ãŒãž
ã¯ã©ã€ã¢ã³ãããµãŒãã§ã®åãæ¿ãæ¹åŒã«ã€ããŠã¯å¥éæ€èšããå¿ èŠãããã
- å¯å€æååã®çµèŸŒ
ãŸããå¯å€æååã®çµã¿èŸŒã¿ã«ã¯ãé çªã®é転ãèæ ®ããŠã
äºã String.Format ã䜿çšããŠãããšè¯ãã
string msg = "ã¢ã»ã³ããªåïŒ[{0}]ã«ãã¯ã©ã¹åïŒ[{1}]ãååšããŸããã";
â
string msg = "Class name: [{1}] does not exist in assembly name: [{0}].";
throw new ArgumentException(
String.Format(msg, assemblyName, className));è£è¶³ïŒãã®ææã¯åœéåã®èŠç¹ãã®ãã®ïŒ: åæã瀺ã
**ã{0}ãš{1}ã®é åºãèšèªã«ãã£ãŠé転ããã**ãšããäŸã¯ã
æååé£çµã«ããçµã¿ç«ãŠãç Žç¶»ããçç±ã端çã«è¡šããŠããã// â é£çµïŒèªé ãå€ããããªã throw new Exception("ã¢ã»ã³ããªåïŒ[" + asm + "]ã«ãã¯ã©ã¹åïŒ[" + cls + "]ãååšããŸããã"); // â æååè£éïŒäžèŠãããã ãããªãœãŒã¹åã§ããªã throw new Exception($"ã¢ã»ã³ããªåïŒ[{asm}]ã«ãã¯ã©ã¹åïŒ[{cls}]ãååšããŸããã"); // â æžåŒæååããªãœãŒã¹ã«çœ®ããå€ã ããæž¡ã throw new Exception(string.Format(Resources.Errors.ClassNotFound, asm, cls));**ããã«é£ããã®ããè€æ°åœ¢ããšãæ§å¥ã**ã§ããã
è±èª: 1 item / 2 items ïŒ2 éãïŒ æ¥æ¬èª: 1 å / 2 å ïŒå€åããªãïŒ ãã·ã¢èª: 1 Ñайл / 2 Ñайла / 5 ÑайлПв ïŒ3 éãïŒ ã¢ã©ãã¢èª: 6 éã
string.Formatã ãã§ã¯è¡šçŸã§ããªãããã
ICU MessageFormat ç³»ã®ä»çµã¿ãå¿ èŠã«ãªãã{count, plural, one {# item} other {# items}}
ç°å¢ ææ®µ .NET MessageFormat.NETããŸãã¯èšèªããšã«ããŒãåããã¯ã©ã€ã¢ã³ãïŒJSïŒ i18nextã Intl.PluralRulesæ¥æ¬èªã®ã¿ã察象ãšãããªãäžèŠã ãã
欧å·èšèªã»ãã·ã¢èªã»ã¢ã©ãã¢èªãå«ããå Žåã¯å¿ é ã«ãªãã
èšèªãå°åã«ããæ°å€ãæ¥æã®è¡šçŸãåãæ¿ããã
åœã«ããæ°å€ã®å°æ°ç¹ã®æåãæ¡åºåãã®æåã»åºåãæ¡æ°ãç°ãªãã
衚瀺ããéã«æ°å€ããŒã¿ã®æžåŒïŒãã©ãŒãããæå®ïŒãåãæ¿ããã
-
æ¥æ¬ã®å Žå
- å°æ°ç¹æåïŒããªãªã
- åºåãæåïŒã«ã³ã
- åºåãæ¡ïŒ3 æ¡ãŸã㯠4 æ¡
-
ã€ã®ãªã¹ãã¢ã¡ãªã«ã®å Žå
- å°æ°ç¹æåïŒããªãªããŸãã¯ããã«ããã
- åºåãæåïŒã«ã³ã
- åºåãæ¡ïŒ3 æ¡
-
ãã©ã³ã¹ãåã¢ããªã«ã®å Žå
- å°æ°ç¹æåïŒã«ã³ã
- åºåãæåïŒåè§ã¹ããŒã¹
- åºåãæ¡ïŒ3 æ¡
-
ãã€ãã®å Žå
- å°æ°ç¹æåïŒã«ã³ã
- åºåãæåïŒããªãªã
- åºåãæ¡ïŒ3 æ¡
ãªããå°æ°ç¹ä»¥äžã®æ¡åºåãã®æã»ç¡ã¯ãåœæ¯ã§ã¯ãªãæ¥åæ¯ã®ä»æ§ã§ããæš¡æ§ã
- åè
- å°æ°ç¹ - Wikipedia
http://ja.wikipedia.org/wiki/%E5%B0%8F%E6%95%B0%E7%82%B9
- å°æ°ç¹ - Wikipedia
è£è¶³ïŒæãå±éºãªã®ã¯ãè§£æãã®åŽïŒ: 衚瀺ïŒ
ToStringïŒãããã
å ¥åã®è§£æïŒParseïŒã®æ¹ãäºæ ã«ãªããããã// de-DE ç°å¢ã§å®è¡ãããšâŠ decimal.Parse("1.234") // â 1234ïŒããªãªããæ¡åºåããšè§£éãããïŒ decimal.Parse("1,234") // â 1.234CSV ããã¡ã€ã«ã®èªã¿æžãã§ãããèµ·ãããšã
å€ã 1000 åããããŸãŸåŠçãéã£ãŠããŸãïŒäŸå€ã«ãªããªãïŒãååïŒã«ã«ã㣠ã®è£è¶³ãšåãïŒ:
// ãã¡ã€ã«ã»DBã»APIïŒå¿ ã InvariantCulture var v = decimal.Parse(s, CultureInfo.InvariantCulture); var s = v.ToString(CultureInfo.InvariantCulture); // ãŠãŒã¶ãŒå ¥åïŒCurrentCulture ã§ãã〠TryParse if (!decimal.TryParse(input, NumberStyles.Number, CultureInfo.CurrentCulture, out var value)) return BadRequest();
Parse/ToStringãåŒæ°ãªãã§åŒãã§ããç®æã¯ã
åœéå察å¿ã®éã«ãã¹ãŠæŽãåºãå¿ èŠãããã
ã¢ãã©ã€ã¶ãŒïŒCA1305: IFormatProvider ãæå®ããŸãïŒã
æå¹ã«ãããšæ©æ¢°çã«æ€åºã§ããã
UTC ãšæå·®
æè¿ã®èšèªã§ã¯ Datetime åã䜿çšããå éšçã«ã¯ UTCïŒåå®äžçæïŒã§ããŒã¿ãä¿æã
ã¿ã€ã ãŸãŒã³ïŒæ¥ä»ãšæå»ïŒã«åãããŠãæå·®ããµããŒã¿ã€ã ãç®åºããŠè¡šç€ºãè¡ãã
-
ãµããŒã¿ã€ã éå§ã»çµäºæ¥ã®åäœã«ã¯æ³šæãå¿ èŠ
ãµããŒã¿ã€ã ã«ãã£ãŠéè€ããæéãç¡ããªãæé-
æ¡ä»¶ïŒã¿ã€ã ãŸãŒã³ã®èšå®ïŒïŒ
- [ã¿ã€ã ãŸãŒã³]ã³ã³ãã»ããã¯ã¹ â (GMT-06:00)äžéšæšæºæ(ç±³åœããã³ã«ãã)
- [èªåçã«å€æéã®èª¿æŽããã]ãã§ãã¯ã»ããã¯ã¹ â ãã§ãã¯
-
DateTime.Now ã®æéãã·ã¹ãã æèšã®åäœ
-
ãµããŒã¿ã€ã ã®éå§æ¥
2013/3/10 01:59:59
IsDaylightSavingTime=False -
1 ç§é²ããš
2013/3/10 03:00:00
IsDaylightSavingTime=True
â» 1 æéé²ãã -
ãµããŒã¿ã€ã ã®çµäºæ¥
2013/11/3 01:59:59
IsDaylightSavingTime=True -
1 ç§é²ããš
2013/11/3 01:00:00
IsDaylightSavingTime=False
â» 1 æéæ»ã£ãŠ 2 åç®ã® 1 æãå§ãŸãã
-
-
DateTime.UtcNow ã®æé
-
ãµããŒã¿ã€ã ã®éå§æ¥
2013/3/10 07:59:59
IsDaylightSavingTime=False -
1 ç§é²ããš
2013/3/10 08:00:00
IsDaylightSavingTime=True
â» ãµããŒã¿ã€ã ã¯åœ±é¿ããªã -
ãµããŒã¿ã€ã ã®çµäºæ¥
2013/11/3 06:59:59
IsDaylightSavingTime=True -
1 ç§é²ããš
2013/11/3 07:00:00
IsDaylightSavingTime=False
â» ãµããŒã¿ã€ã ã¯åœ±é¿ããªã
-
-
è£è¶³ïŒãã®æ€èšŒçµæã瀺ãèšèšæéïŒ: åæã®å®æž¬ã¯
**ãããŒã«ã«æå»ã¯é£ç¶ããªãã**ãšããæ±ºå®çãªäºå®ã瀺ããŠããããæ¥ïŒéå§ïŒã01:59:59 â 03:00:00 â 02:00ã02:59 ã¯ãååšããªãæå»ã â ãã®æå»ã DateTime ã§äœããšãäžæ£ãªå€ã«ãªã ãç§ïŒçµäºïŒã01:59:59 â 01:00:00 â 01:00ã01:59 ãã2 åããã â ãã°ã®æå»é ãé転ããïŒãããã 2 ååãèšèšäžã®çµè«:
çšé 䜿ããã® ä¿åã»æ¯èŒã»èšç® UTCïŒ DateTime.UtcNow/DateTimeOffsetïŒè¡šç€º ããŒã«ã«æå»ã«å€æ ã¹ã±ãžã¥ãŒã«ïŒãæ¯æ¥ 2:30 ã«å®è¡ãïŒ UTC ã§æã€ããååšããªãæå»ãé¿ãã // çŸåšã®æšå¥šã¯ DateTimeOffsetïŒãªãã»ãããä¿æããïŒ DateTimeOffset now = DateTimeOffset.UtcNow; var local = TimeZoneInfo.ConvertTime(now, TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")); // ååšããªãïŒææ§ãªæå»ã®å€å® var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); tz.IsInvalidTime(dt); // æ¥ïŒååšããªãæå»ã tz.IsAmbiguousTime(dt); // ç§ïŒ2 åããæå»ã
DateTimeããDateTimeOffsetã䜿ãã®ãçŸåšã®æéã§ãã
ïŒDateTimeã¯KindïŒUtc/Local/UnspecifiedïŒãæã€ãã
Unspecifiedã®ãŸãŸæž¡ãæ©ããŠäºæ ã«ãªãããšãå€ãïŒãã¿ã€ã ãŸãŒã³ ID ã®äºææ§ã«ã泚æãèŠãã
Windows Linux / macOS ID "Tokyo Standard Time""Asia/Tokyo"ïŒIANAïŒ.NET 6 以é äž¡æ¹ãåãä»ããïŒçžäºå€æãããïŒ åå·Š .NET 6 ããåã¯ãã©ãããã©ãŒã ããšã« ID ãåå²ããå¿ èŠããã£ãã
çŸåšã¯TimeZoneInfo.FindSystemTimeZoneByIdãåæ¹ã解決ãã
ïŒãã ã ICU ãå¿ èŠãã«ã«ã㣠ã®è£è¶³ãåç §ïŒã
- åè
-
Wikipedia
- æšæºæ - Wikipedia
http://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E6%99%82 - åå®äžçæ - Wikipedia
http://ja.wikipedia.org/wiki/%E5%8D%94%E5%AE%9A%E4%B8%96%E7%95%8C%E6%99%82 - ã°ãªãããžæšæºæ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AA%E3%83%8B%E3%83%83%E3%82%B8%E6%A8%99%E6%BA%96%E6%99%82
- æšæºæ - Wikipedia
-
ããã°ã©ãã³ã°
- ããŒã«ã«æå»ãäžçå宿å»(UTC)ã«å€æãã .NET Tips C#, VB.NET
http://dobon.net/vb/dotnet/system/touniversaltime.html - ã¿ã€ã ãŸãŒã³ãååŸãã: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/system/timezone.html - æ¹æ³ : 調æŽèŠåã®ããã¿ã€ã ãŸãŒã³ãäœæãã
https://learn.microsoft.com/ja-jp/dotnet/standard/datetime/create-adjustment-rules
- ããŒã«ã«æå»ãäžçå宿å»(UTC)ã«å€æãã .NET Tips C#, VB.NET
-
西æŠã®è¡šèšã®ä»æ¹
äžçæšæºèŠæ ŒãšããŠãISO 8601 ã® "YYYY-MM-DD" æ¹åŒã確ç«ããŠããã
-
æ¥æ¬ã§ã¯éåžžãå¹Žææ¥ã®é çªã«ç®çšæ°åã§è¡šèšãããã
- 2013幎04æ05æ¥
- 2013/04/05
-
é çªã®ç°ãªãåœããããã衚èšãåãæ¿ããå¿ èŠãããã
- ææ¥å¹Ž(ç±³åœ)
- æ¥æå¹Ž(ãã·ã¢ããªãŒã¹ãã©ãªã¢ãªã©å€æ°)
-
ãŸããé çªã ãã§ãªã
April 05 2013
ã®æ§ã«æ°å以å€ã§ã®è¡šè𿹿³ãããã
ïŒæ¥ã 01-12 ã®ç¯å²å ã®å Žåãæã»æ¥ã®åºå¥ãä»ãé£ãããïŒ
- Datetime.ToString() ã®æ¢å®ã®æžåŒã¯ãã«ã«ãã£ãïŒCultureInfoïŒã®
圱é¿ãåããã
DateTime dateTime = new DateTime(2000, 1, 23, 4, 5, 6);
// ããã©ã«ãã®ã«ã«ãã£(ja-JP)ã§æ¥æãæååå
Console.WriteLine("{0}: {1}", CultureInfo.CurrentCulture, dateTime.ToString());
// en-US(è±èª/ã¢ã¡ãªã«åè¡åœ)ã®ã«ã«ãã£ã§æ¥æãæååå
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine("{0}: {1}", CultureInfo.CurrentCulture, dateTime.ToString());
// de-DE(ãã€ãèª/ãã€ã)ã®ã«ã«ãã£ã§æ¥æãæååå
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine("{0}: {1}", CultureInfo.CurrentCulture, dateTime.ToString());
â åºå
ja-JP: 2000/01/23 4:05:06
en-US: 1/23/2000 4:05:06 AM
de-DE: 23.01.2000 04:05:06è£è¶³ïŒISO 8601 ã䜿ãïŒ: åæãåé ã§æããŠãã
ISO 8601 ããæ©æ¢°å¯èªãªæ¥æè¡šçŸã®å¯äžã®æ£è§£ã§ããã// ã©ãŠã³ãããªããæžåŒïŒ"O"ïŒïŒISO 8601 æºæ ãããŒã¹ãç¢ºå® var s = DateTimeOffset.UtcNow.ToString("O", CultureInfo.InvariantCulture); // â 2026-08-19T05:06:07.8901234+00:00 var v = DateTimeOffset.Parse(s, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);
çšé æžåŒ APIã»ãã¡ã€ã«ã»ãã° "O"ïŒISO 8601ïŒãã¡ã€ã«å "yyyyMMdd_HHmmss"衚瀺 ToString("d")/("D")çã®æšæºæžåŒè¡šç€ºã«ã¯ã«ã¹ã¿ã æžåŒïŒ
"yyyy/MM/dd"ïŒã䜿ããªã
ã®ãåœéåã®èгç¹ã§ã¯æ£ããã
æšæºæžåŒæå®åã䜿ãã°ãã«ã«ãã£ã«å¿ããŠèªåã§åãæ¿ãããdt.ToString("d") // ja-JP: 2026/08/19 en-US: 8/19/2026 dt.ToString("D") // ja-JP: 2026幎8æ19æ¥ en-US: Tuesday, August 19, 2026
- åè
- æ¥ä» - Wikipedia
http://ja.wikipedia.org/wiki/%E6%97%A5%E4%BB%98 - ã«ã¹ã¿ã ã®æ¥ä»ãšæå»ã®æžåŒæå®æåå
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/custom-date-and-time-format-strings - bear.mini [.NET] DateTime.ToString() æžåŒæå®æåå ãŸãšã - ã«ã¹ã¿ã DateTime æžåŒæå®æååç·š
http://bearmini.net/blog/View.aspx?bid=1&aid=57 - ã«ã«ãã£ã®åºæ¬ãšã«ã«ãã£æ
å ± (CultureInfo)
Programming-.NET Framework-ãã±ãŒã«(ã«ã«ãã£) - ç·æŠãœãããŠã§ã¢æšé²æ
http://smdn.jp/programming/netfx/locale/0_abstract/
- æ¥ä» - Wikipedia
-
æ¥æ¬ã®åæŠã«çžåœããæŠã«ä»¥äžã®ãã®ãããã
- 仿Š
- äžè¯æ°åœæŠ
- å°æ¹ŸæŠ
- éåœæŠ
- ããã©ã€æŠ
- åææŠ
- .etc
-
西æŠããå¥ã®æŠã«å€æããã«ã¯åçš®æŠïŒã«ã¬ã³ããŒïŒã䜿çšããã
ããã«ã€ããŠã¯ãCalendar ã¯ã©ã¹ã®æŽŸçã¯ã©ã¹ã§ç¢ºèªã§ããã-
Calendar ã¯ã©ã¹ (System.Globalization)
https://learn.microsoft.com/ja-jp/dotnet/api/system.globalization.calendar-
System.Globalization.EastAsianLunisolarCalendar
æéãæãæ¥ã幎ãããã³æä»£ (幎å·) ã«åå²ããã
ãã®æ¥ä»ã倪éœãšæã®åšæã«åºã¥ããŠããæŠã衚ããŸãã -
System.Globalization.GregorianCalendar
ã°ã¬ãŽãªãªæŠã衚ããŸãã -
System.Globalization.HebrewCalendar
ããã©ã€æŠã衚ããŸãã -
System.Globalization.HijriCalendar
åææŠã衚ããŸãã -
System.Globalization.JapaneseCalendar
åæŠã衚ããŸãã -
System.Globalization.JulianCalendar
ãŠãªãŠã¹æŠã衚ããŸãã -
System.Globalization.KoreanCalendar
éåœæŠã衚ããŸãã -
System.Globalization.PersianCalendar
ãã«ã·ã£æŠã衚ããŸãã -
System.Globalization.TaiwanCalendar
å°æ¹ŸæŠã衚ããŸãã -
System.Globalization.ThaiBuddhistCalendar
ã¿ã€ä»æŠã衚ããŸãã -
System.Globalization.UmAlQuraCalendar
ãµãŠãžåææŠ (Umm-Al Qurah) ã衚ããŸãã
-
-
ååœç¬èªã®æŠã®ïŒã€ã§ãä»çµã¿äžãã³ã¬ããšååã«æ±ããã
- 倿åŠç
- è¥¿æŠ â åæŠ
CultureInfo culture = new CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new JapaneseCalendar();
DateTime target = new DateTime(2003, 7, 1);
string result = target.ToString("ggyy幎Mædæ¥", culture);
Console.WriteLine(result);
// åºåïŒå¹³æ15幎7æ1æ¥- åæŠ â 西æŠ
CultureInfo culture = new CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new JapaneseCalendar();
string target = "å¹³æ15幎7æ1æ¥";
DateTime result = DateTime.ParseExact(target, "ggyy幎Mædæ¥", culture);
Console.WriteLine(result.ToLongDateString());
// åºåïŒ2003幎7æ1æ¥-
åè
-
ïŒ ITïŒ.NET TIPS 西æŠãšåæŠã倿ããã«ã¯ïŒ - C# VB.NET
http://www.atmarkit.co.jp/fdotnet/dotnettips/034wareki/wareki.html -
[C#] CultureInfo ã§åæŠã»è¥¿æŠãæå®ããŠæå»ã衚瀺ãã èšèª C#
http://code.msdn.microsoft.com/windowsdesktop/C-CultureInfo-5319f672 -
åæŠè¡šç€ºïŒSystem.Globalization.CultureInfoïŒã«ã€ããŠ
https://social.msdn.microsoft.com/Forums/ja-JP/a93ec79d-69a5-4bb7-ae5d-a8aabfdcb9dd/systemglobalizationcultureinfo?forum=netfxgeneralja
-
è£è¶³ïŒ
ja-JPã®æ¢å®ã«ã¬ã³ããŒã¯è¥¿æŠïŒ:new CultureInfo("ja-JP")ã®
æ¢å®ã¯ã°ã¬ãŽãªãªæŠã§ããã
åæã®ããã«DateTimeFormat.Calendarãå·®ãæ¿ãããã
ja-JP-u-ca-japaneseã䜿ãå¿ èŠãããã// çŸåšã¯ãã¡ããç°¡æœïŒ.NET Core 3.0 以éã§å®å®ïŒ var culture = new CultureInfo("ja-JP-u-ca-japanese"); Console.WriteLine(new DateTime(2026, 8, 19).ToString("ggy幎Mædæ¥", culture)); // â 什å8幎8æ19æ¥å 幎ã®è¡šèšã«ã泚æãèŠãã
.NET Framework 4.8 / .NET Core 3.0 以é â æ¹å ã®å¹Žã¯ãå 幎ããšè¡šç€ºãããïŒ"1幎" ã§ã¯ãªãïŒ â è§£æåŽããå 幎ããåãä»ããå 幎衚èšãäžèŠãªå Žåã¯
DateTimeFormatInfoã調æŽãããã
èªåã§çœ®æããã
-
åæŠïŒJapaneseCalendarïŒã䜿çšããŠããã°ã察å¿ã¯å°ãªããŠæžãã
-
äžç¹ã ãã以äžã®ãããªåäœå€æŽãããã®ã§å¿ èŠã«å¿ããŠå¯Ÿå¿ãå¿ èŠã«ãªãã
-
åäœã®å€æŽ
ãæå 65 幎ããªã©ã®è¡šèšã¯ãæ³ä»€äžç¡å¹ãªãã®ã§ã¯ãªãã
æ¬æ¥ã¯äŸå€ãã¹ããŒããããšãªãåŠçãããã¹ããã®ãšããŠã
ä»åã®æ°å å·å¯Ÿå¿ã«ãã£ãŠãäžèšã®ãããªå Žåãã
äŸå€ãã¹ããŒãããããšãªãåŠçãããããã«ãªãã -
å¯Ÿå¿æ¹æ³
ä»åã®æ°å å·å¯Ÿå¿åŸãããããŸã§ãšåæ§ã«ãæå 65 幎ãã®ãããª
衚èšãäŸå€ãšããŠåŠçããããã«ã¯ã以äžã®å¯Ÿçãå¿ èŠã«ãªãã- .NET Framework 4.6 以éãã¿ãŒã²ãããšããŠããã¢ããª
æ§æãã¡ã€ã« (App.Config / Web.Config) ã«ã以äžãèšå®ããã
- .NET Framework 4.6 以éãã¿ãŒã²ãããšããŠããã¢ããª
-
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Globalization.EnforceJapaneseEraYearRanges=true" />
</runtime>
</configuration>- .NET Framework 4.5.2 以åãã¿ãŒã²ãããšããŠããã¢ããª\
以äžã®ããã«ã¬ãžã¹ããªå€ã倿Žããã
ã»ããŒ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AppContext
ã»åå
Switch.System.Globalization.EnforceJapaneseEraYearRanges
ã»çš®é¡
REG_SZ
ã»ããŒã¿
1
ç§»è¡ã¡ã¢ïŒã¬ãžã¹ã㪠ãã¹ã®è¡šèšïŒ: åæã®
HKEY_LOCALMACHINE\SOFTWARE\Microsoft.NETFramework\AppContextã¯
åºåããæ¬ èœããŠããããã
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AppContextã«ä¿®æ£ããã
è£è¶³ïŒæ¬¡ã®æ¹å ã«åããŠïŒ: 什忹å ã§åŸãããæèšã
æŽçããŠãããšã次åã®åãã«ãªãããæ¹å ã§å£ããç®æã ã»åæŠããæååãã§æã£ãŠããïŒ"H31" çïŒ ã»å å·ã®äžèЧãã³ãŒãã«ããŒãã³ãŒãããŠãã ã»å¹Žå· 1 æåç®ã§å€å®ããŠããïŒ"å¹³" / "什" ãåã "R" çã«åããïŒ ã»ãæå65幎ãã®ãããªç¯å²å€ã®å¹Žã蚱容ããŠããïŒããŠããªãã£ã ã»åž³ç¥šã®ã¬ã€ã¢ãŠããå å· 1 æååæïŒ"什å" 㯠2 æåïŒèšèšäžã®æé:
æé å 容 å éšã¯è¥¿æŠïŒã§ããã° UTCïŒã§æã€ åæŠã¯è¡šç€ºæã«å€æããã ã å å·ã®äžèЧãèªåã§æããªã JapaneseCalendarã«å§ããå®è¡ç°å¢ãæŽæ°å¯èœã«ããŠãã æ¹å 㯠OS / ã©ã³ã¿ã€ã ã®æŽæ°ã§å¯Ÿå¿ããã åž³ç¥šã®æ¡æ°ã«äœè£ãæããã å å·ã¯ 1ã2 æåïŒ+ ã¢ã«ãã¡ããã衚èšïŒ ãå®è¡ç°å¢ãæ°ãããã°ãåãã«ãäžèŠã§å¯Ÿå¿ã§ããã
ïŒåŸè¿°ã®åèã«ããéããWin 7 + .NET 4 以éãæ¡ä»¶ïŒãšãã
æ§è³ªãä¿ã€ã«ã¯ãèªåã§å å·ããŒãã«ãæããªãããšã決å®çã§ããã
åœãå°åã«ããåäœã®è¡šçŸãåãæ¿ããã
ïŒïŒïŒé貚
- çŸå°ã®é貚ããŸãã¯ããããã®é貚ã«çµ±äžã衚çŸããã
- éè²šã®æžåŒæå®åïŒC ãŸã㯠cïŒã¯ãã«ã«ãã£ãïŒCultureInfoïŒã®åœ±é¿ãåããã
decimal moneyvalue = 1921.39m;
// ããã©ã«ãã®ã«ã«ãã£(ja-JP)ã§æååå
Console.WriteLine(String.Format("Order Total: {0:C}", moneyvalue));
// en-US(è±èª/ã¢ã¡ãªã«åè¡åœ)ã®ã«ã«ãã£ã§æååå
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(String.Format("Order Total: {0:C}", moneyvalue));
// de-DE(ãã€ãèª/ãã€ã)ã®ã«ã«ãã£ã§æååå
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(String.Format("Order Total: {0:C}", moneyvalue));
â åºå
Order Total: \1,921
Order Total: $1,921.39
Order Total: 1.921,39 â¬è£è¶³ïŒé貚æžåŒã¯ãæç®ããªããïŒ: ãã®äŸã瀺ãæãéèŠãªäºå®ã¯ã
{0:C}ã¯èšå·ãå€ããã ãã§ãéé¡ã¯æç®ããªããšããç¹ã§ããã1921.39 ãšããå€ã ja-JP â ï¿¥1,921 ïŒå°æ°ãäžžããããïŒ en-US â $1,921.39 de-DE â 1.921,39 ⬠â ã1921 åããã1921 ãã«ãã«åããããã¯è¡šç€ºã®äºæ ã§ã¯ãªããéé¡ã®æå³ãå€ããé倧ãªäºæ ã§ããã
åå:
// â CurrentCulture ä»»ã total.ToString("C"); // â é貚ã¯å€ãšäžç·ã«æã¡ããã®é貚ã®ã«ã«ãã£ã§æžåŒåãã var jp = new CultureInfo("ja-JP"); total.ToString("C", jp); // åžžã«åãšããŠè¡šç€ºASP.NET Web Formsã®åœéåå¯Ÿå¿ ã§åŒçšãããŠãã
**ãWeb ãªãŒã¯ã·ã§ã³ ãµã€ãã§ã¯ UI ã«ã«ãã£ã¯å€ããã
ã«ã«ãã£èªäœã¯å€æŽãããªãã**ãšãã MSDN ã®èšè¿°ã¯ã
ãŸãã«ãã®åé¡ãæããŠãããéé¡ãæ±ãå Žåã¯ãé貚ã³ãŒãïŒJPY / USDïŒãå€ãšäžç·ã«æã€ã
ã®ãæ£ããèšèšã§ããã
ïŒïŒïŒèšæž¬åäœ
-
çŸå°ã®èšæž¬åäœããŸãã¯ããããã®èšæž¬åäœã«çµ±äžã衚çŸããã
-
æã䜿ãããŠããã®ã¯ã¡ãŒãã«æ³ãšã€ãŒã ãã³ãæ³ã
-
Windows ã¹ãã¢ã¢ããªã§ã¯ã
Globalization åå空éã䜿ã£ãŠæ£ããã·ã¹ãã èšæž¬ãååŸã§ããã
ïŒïŒïŒæ¥æ¬ã®åãäžåœã®äººæ°å ã¯ã©ã¡ãã ï¿¥ èšå·ã䜿ã
-
åºå¥ããå Žåã¯ä»¥äžã®æ§ã«ããã
- æ¥æ¬ã®åãâãï¿¥
- äžåœã®äººæ°å ãâãCNï¿¥
-
åè
- åèšå· - Wikipedia
http://ja.wikipedia.org/wiki/%E5%86%86%E8%A8%98%E5%8F%B7
- åèšå· - Wikipedia
ïŒïŒïŒï¿¥ ã¯ããã¯ã¹ã©ãã·ã¥ããŠã©ã³ã«çœ®ãæãã
ååœèªçšã®ãã©ã³ãã®ãã¡ U+005C ã®æåã¯ãããããã«ã¹ã¿ãã€ãºãããŠããã
ãã®ãã䜿çšãããã©ã³ã次第ã§å¥ã®èšå·ã«çœ®ãæããã
- åè
- Unicode - Wikipedia > YEN SIGN åé¡
http://ja.wikipedia.org/wiki/Unicode
- Unicode - Wikipedia > YEN SIGN åé¡
è£è¶³ïŒU+005C åé¡ã®å®åçãªåœ±é¿ïŒ: ããã¯
æåã³ãŒã ãšãé¢ãããæ¥æ¬ç¹æã®æ ¹æ·±ãåé¡ã§ãããU+005C REVERSE SOLIDUSïŒããã¯ã¹ã©ãã·ã¥ïŒ â æ¥æ¬èªãã©ã³ãã§ã¯ãï¿¥ããšããŠæç»ããã â éåœèªãã©ã³ãã§ã¯ãâ©ãïŒãŠã©ã³ïŒãšããŠæç»ããã U+00A5 YEN SIGNïŒæ¬æ¥ã®åèšå·ïŒ U+FFE5 FULLWIDTH YEN SIGNïŒå šè§ã®ï¿¥ïŒåããã€ãåãããã©ã³ãã«ãã£ãŠå¥ã®æåã«èŠããã
å®åã§ã®åœ±é¿:
å Žé¢ çç¶ Windows ã®ãã¹ C:\tempãC:ï¿¥tempã«èŠããïŒåãæåïŒããã°ã©ã ã®ãšã¹ã±ãŒã "\n"ã"ï¿¥n"ã«èŠããé貚衚瀺 ãã©ã³ã次第ã§ãï¿¥ããã\ãã«èŠãã Shift_JIS â Unicode 倿 0x5C ã®æ±ãã§æååããäžæ£ãªå€æãèµ·ãã 察åŠ:
- é貚èšå·ãšããŠã¯ U+00A5 ãŸã㯠U+FFE5 ã䜿ãïŒU+005C ã䜿ããªãïŒ
- çå¹ ãã©ã³ãã®éžå®ãæèããïŒéçºæã¯ Cascadia Code çïŒ
- Shift_JIS ããã®å€æã§ã¯ 0x5C ã®æ±ãã確èªãã
ããœãŒã¹ã Shift_JIS ãã UTF-8 ã«å€æããããã¹ãå£ããã
ãšããäºæ ã¯ããã®åé¡ã«èµ·å ããããšãå€ãã
Windows Forms ã§ããã°ã
ããªãœãŒã¹ãã¡ã€ã«ããçšããããšã§ã
äžèšãUI èŠçŽ ã®
- æèšïŒåè¿°ïŒ
- ãµã€ãº
- é 眮é
ãåãæ¿ããããšãã§ããã
衚瀺ããæèšã®é·ãã«ãããç»é¢é ç®ã®ãµã€ãºã調æŽããã
èšèªãå°åã«ããæåã®æ¹åæ§ãåãæ¿ããã
ïŒ ã¢ã©ãã¢èªã§ã¯æåæ¹åãå³ããå·Š
- å·Šããå³ãžãå³ããå·Šãžãå·Šã«åãã£ãŠäžããäž
- ã³ã³ãããŒã«ã®é 眮é ã衚ã®åé
è£è¶³ïŒRTL 察å¿ã¯ Web ã®æ¹ã容æïŒ: åæã¯
Windows Forms ã®åœéåå¯Ÿå¿ ãåæã«
ããµã€ãºãšé 眮é ãåãæ¿ããããšè¿°ã¹ãŠãããã
Web ã§ã¯ã¬ã€ã¢ãŠãã®ä»çµã¿èªäœã察å¿ããŠããã<html dir="rtl" lang="ar">/* è«çããããã£ã䜿ãã°ãLTR / RTL åæ¹ã§æ£ããå¹ã */ .card { margin-inline-start: 1rem; padding-inline: 1rem; } /* â margin-left ã§ã¯ãªã inline-start */
ç©çãããã㣠è«çãããã㣠margin-leftmargin-inline-startpadding-rightpadding-inline-endtext-align: lefttext-align: startborder-leftborder-inline-startè«çããããã£ã䜿ã£ãŠããã°ã
dir="rtl"ãåãæ¿ããã ãã§
ã¬ã€ã¢ãŠããå転ããã
Windows Forms ã§ãRightToLeft/RightToLeftLayoutããããã£ã
ããããWeb ã®æ¹ã察å¿ã³ã¹ãã¯äœããæèšã®é·ãã®å·®ïŒåæã®ããµã€ãºãïŒã«ã€ããŠã¯ã
æ¥æ¬èªãä¿åã â è±èª "Save" ïŒçãïŒ æ¥æ¬èªããã£ã³ã»ã«ã â ãã€ãèª "Abbrechen" ïŒé·ãïŒ æ¥æ¬èªãèšå®ã â ãã·ã¢èª "ÐаÑÑÑПйкО" ïŒé·ãïŒåºå®å¹ ãé¿ãã䌞瞮ããã¬ã€ã¢ãŠãïŒFlexbox / GridïŒã«ãã
ã®ãæ ¹æ¬çãªå¯ŸåŠã§ãã
ïŒçµéšåãšã㊠è±èªæ¯ +30ã50% ã®äœè£ãèŠãïŒã
æ¬é
ã§ã¯ãWindows ãã±ãŒã«ïŒå°åãšèšèªïŒã®å€æŽæ¹æ³ã«ã€ããŠèª¬æããã
Windows ãã±ãŒã«ïŒå°åãšèšèªïŒã«å¯Ÿå¿ããã«ã«ãã£ã®å€æŽæ¹æ³ã«ã€ããŠã¯ã
ãã«ã«ãã£ããåç §ã
ãã³ã³ãããŒã«ããã«ãã®ïŒ»æèšãèšèªãããã³å°å
ãâå°åãšèšèªïŒœãå°åãšèšèªãç»é¢ãã倿Žããã
ãŠãŒã¶ã»ãã±ãŒã«
-
èšå®
- [圢åŒ]ã³ã³ãã»ããã¯ã¹
- æ¥ä»ãšæå»ã®è¡šç€ºåœ¢åŒãèšå®å¯èœã
- 远å ã®èšå®ïŒœã§ãæ°å€ãšé貚ã®è¡šç€ºåœ¢åŒãèšå®å¯èœã
- [圢åŒ]ã³ã³ãã»ããã¯ã¹
-
説æ
- ãŠãŒã¶ã»ãã±ãŒã«ãæ¥ä»ãšæå»ãæ°å€ãé貚ã®è¡šç€ºåœ¢åŒãèšå®ããã
-
API
-
Win32:
- GetDateFormat
- GetCalendarInfo
- GetTimeFormat
- GetCurrencyFormat
- GetNumberFormat
- GetLocaleInfo
- GetUserDefaultLangID
- GetUserDefaultLCID
- GetUserDefaultUILanguage
-
.NET: CultureInfo
- CultureInfo.Calendar
- CultureInfo.DateTimeFormat
- System.DateTime(âŠ, CultureInfo(LCID).Calendar).ToString
- CultureInfo.NumberFormat
-
æ¢å®ã®å Žæ
-
èšå®
- [çŸåšã®å Žæ]ã³ã³ãã»ããã¯ã¹
-
説æ
- GPS ã»ã³ãµãŒãªã©ã䜿çšã§ããªãå Žåã
ããœã³ã³ã䜿çšããæ¢å®ã®å Žæãæå®ããã - ãã®æ å ±ãããã°ã©ã ãã䜿çšã§ããã
- GPS ã»ã³ãµãŒãªã©ã䜿çšã§ããªãå Žåã
-
API
- Win32: GetUserGeoID
- .NET: RegionInfo
- COM: IDefaultLocation ã€ã³ã¿ãŒãã§ã€ã¹
ãã€ã¢ãã°ããã¡ãã»ãŒãžã® UI 衚瀺èšèª
-
èšå®
- [衚瀺èšèª]ã°ã«ãŒãã®[衚瀺èšèªãéžãã§äžãã]ã³ã³ãã»ããã¯ã¹
-
説æ
- MUI(Multi User Interface)çã® OS ãå¿ èŠã«ãªãã
- ç°å¢èšå®ã«å¯Ÿå¿ããããã€ã¢ãã°ããã¡ãã»ãŒãžã衚瀺ããã
å ¥åãã±ãŒã«
-
èšå®
- [ããŒããŒãã®å€æŽ]ãã¿ã³ â [ããã¹ã ãµãŒãã¹ãšå ¥åèšèª]ç»é¢
-
説æ
- ãŠãŒã¶ãå ¥åããéã«äœ¿çšãããã±ãŒã«
- ããŒããŒãã®ã¬ã€ã¢ãŠããšãIME ã®èšèªå€æã«äœ¿çš
-
API
- .NET: CultureInfo.KeyboardLayoutId
ç§»è¡ã¡ã¢ïŒèŠåºãã®éè€ïŒ: åæã§ã¯
ã[ããŒããŒããšèšèª]ã¿ãããšããååã®èŠåºãã 2 ã€é£ç¶ããŠããããã
å 容ã«å¿ããŠ**ïŒè¡šç€ºèšèªïŒïŒïŒå ¥åãã±ãŒã«ïŒ**ãè£ã£ãŠåºå¥ããã
ãŸããMUI(Multi User Inteface)ãã¯
Multi User Interface ã®ç¶Žãã®èª€ããšå€æãä¿®æ£ããã
ã·ã¹ãã ã»ãã±ãŒã«ïŒLCIDïŒ
-
èšå®
- [ã·ã¹ãã ãã±ãŒã«ã®å€æŽ]ãã¿ã³ â [çŸåšã®ã·ã¹ãã ãã±ãŒã«]ã³ã³ãã»ããã¯ã¹
-
説æ
- OS ã®ãã±ãŒã«
- ã¡ãã¥ãŒãç»é¢ã®èšèªã倿Žããã
- Unicode 察å¿ãããŠããªãå€ããœããã§äœ¿çšããã
-
API
-
Win32ïŒ
- GetSystemDefaultLangID
- GetSystemDefaultLCID
- GetSystemDefaultUILanguage
-
.NETïŒCultureInfo.InstalledUICulture
-
è£è¶³ïŒãã·ã¹ãã ãã±ãŒã«ãã¯é Unicode ã¢ããªçšïŒ: åæã®
ãUnicode 察å¿ãããŠããªãå€ããœããã§äœ¿çšããããšãã説æãèŠç¹ã§ã
ãã㯠.NET ã¢ããªã®è¡šç€ºèšèªãšã¯ç¡é¢ä¿ã§ãããã·ã¹ãã ãã±ãŒã«ïŒé Unicode ããã°ã©ã ã®èšèªïŒ â ANSI ã³ãŒãããŒãžïŒ[æåã³ãŒã](MS_CharacterEncoding) ã® CP932 çïŒã決ãã â .NET ã¢ããªã¯å éšã UTF-16 ãªã®ã§ãååãšããŠåœ±é¿ãåããªã ãã ã圱é¿ãåºãå Žåããã ã»Encoding.Default ã«äŸåããã³ãŒãïŒ.NET FrameworkïŒ ã»ãã€ãã£ã DLL ãšã®çžäºéçš ã»ã³ã³ãœãŒã«ã®åºåã³ãŒãããŒãž**Windows 10 以éã§ã¯ãããŒã¿: ã¯ãŒã«ãã¯ã€ãèšèªãµããŒãã§
Unicode UTF-8 ã䜿çšã**ãšãããã§ã㯠ããã¯ã¹ã远å ããã
ã·ã¹ãã ãã±ãŒã«ã UTF-8ïŒCP65001ïŒã«ã§ããã
ãã ããå€ãã¢ããªãå£ããããšãããããã
æ¥å端æ«ã§ã®æå¹åã¯æ éã«å€æããã
- ãé£èŒããããããWindows7ã第24åãå°åãšèšèªïœã¢ã¹ããŒPC ç·šééšããã°
http://asciipc.jp/blog/windows7/windows724/ - System User UI language - gdgdã£ãšç¡æ°åçæŽ» ïŒ ãÂŽÏïœïŒã'''ã
http://d.hatena.ne.jp/gdgd-shinoyu/20091027/1256601600 - Microsoft Win32 ãš Microsoft .NET Framework API ãšã®å¯Ÿå¿
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/articles/aa302340(v=msdn.10)
倧ããåããŠã以äžã®åãæ¿ãæ¹åŒãããã
-
ã·ã¹ãã ã®èšå®ã§åäœã倿Žãããæ¹åŒ
-
ã¢ããªã±ãŒã·ã§ã³ã®èšå®ã§åäœå€æŽãããæ¹åŒ
- ã«ã«ãã£ã倿Žããæ¹åŒ
- ã«ã«ãã£ä»¥å€ã®ãã©ã¡ã¿ãæ¡çšããæ¹åŒ
ã·ã¹ãã ã®ã¢ãŒããã¯ãã£æ¯ã®
ã«ã«ãã£ã䜿ãåãããã€ã³ãã«ã€ããŠèª¬æããã
- ã·ã¹ãã èšå®ããã®ãŸãŸäœ¿çšã
- ã¢ããªã±ãŒã·ã§ã³èšå®ïŒïŒã€ã® OS ã§å€èšèªå¯Ÿå¿ããå¿
èŠãããå ŽåïŒ
- ã«ã«ãã£ã倿Žããæ¹åŒ
- ã«ã«ãã£ä»¥å€ã®ãã©ã¡ã¿ãæ¡çšããæ¹åŒ
-
ã¯ã©ã€ã¢ã³ã
- ã·ã¹ãã èšå®ããã®ãŸãŸäœ¿çšã
- ã¢ããªã±ãŒã·ã§ã³èšå®ïŒïŒã€ã® OS ã§å€èšèªå¯Ÿå¿ããå¿
èŠãããå ŽåïŒ
- ã«ã«ãã£ã倿Žããæ¹åŒ
- ã«ã«ãã£ä»¥å€ã®ãã©ã¡ã¿ãæ¡çšããæ¹åŒ
-
ãµãŒã
-
ã·ã¹ãã èšå®ããã®ãŸãŸäœ¿çšã
-
ã¢ããªã±ãŒã·ã§ã³èšå®ïŒconfig ãªã©ïŒ
- ã«ã«ãã£ã倿Žããæ¹åŒ
- ã«ã«ãã£ä»¥å€ã®ãã©ã¡ã¿ãæ¡çšããæ¹åŒ
-
ã¯ã©ã€ã¢ã³ãåŽèšå®ïŒHTTP ããããç¬èª cookieïŒ
- ã«ã«ãã£ã倿Žããæ¹åŒ
- ã«ã«ãã£ä»¥å€ã®ãã©ã¡ã¿ãæ¡çšããæ¹åŒ
-
ã¯ã©ã€ã¢ã³ãã»ãµãŒãã§ã¯ãèæ ®ç¹ãå€ãåœéåãé£ããã
ãã¿ãŒãŠãŒã¹ã¯ä»¥äžã®æ§ã«èããã
-
ååœãã䜿çšãããåœéåããããµãŒãã»ã¢ããªã±ãŒã·ã§ã³
-
ãã±ãŒã«
- ã¯ã©ã€ã¢ã³ãã»ãã±ãŒã«ã¯å¯å€
- ãµãŒãã»ãã±ãŒã«ã¯åºå®
-
UI 衚瀺ã®ãªãœãŒã¹ãã¡ã€ã«ïŒCurrentUICultureïŒ
- ã¯ã©ã€ã¢ã³ãã»ãã±ãŒã«ã§éžæå¯èœã«ããã
-
ãã°ã»ã¡ãã»ãŒãžçã®ãªãœãŒã¹ãã¡ã€ã«ïŒCurrentUICultureïŒ
- ãµãŒãã»ãã±ãŒã«ã«åºå®ã
- äŸå€ã¡ãã»ãŒãžçã CurrentUICulture ã䜿çšããã
-
æžåŒãªã©ã®ãã©ãŒãããåŠçïŒCurrentCultureïŒ
以äžã®æ¹åŒã®ãã¡ããéžæããã- ã¯ã©ã€ã¢ã³ãã»ãã±ãŒã«ã§éžæå¯èœã«ããã
- ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããåäœã¯çµ±äžããïŒé貚ãèšæž¬åäœãªã©ïŒã
-
-
ååœã«ããŒã«ã©ã€ãºããããµãŒãã»ã¢ããªã±ãŒã·ã§ã³
- ã¹ã¿ã³ãã¢ãã³ãšåãã
è£è¶³ïŒãã®æŽçã¯çŸåšãæå¹ïŒ: åæã®ããã¿ãŒãŠãŒã¹ãã¯
å®åçã«åŠ¥åœãªæŽçã§ãããçŸåšã®èšèšæéãšããŠããã®ãŸãŸéçšããã
è£ããšããã°ã**ããã°ãšãŠãŒã¶ãŒåãã¡ãã»ãŒãžãåããã**ãšãã
å®è£ äžã®äœæ³ã§ããããåé¡ã äŸå€ã¡ãã»ãŒãžã CurrentUICulture ã§äœããšã ãŠãŒã¶ãŒã®èšèªã§ãã°ã«æ®ã£ãŠããŸã ãçŸåšã®äœæ³ã ã»äŸå€ã«ã¯ãèå¥ã§ããã³ãŒã + è±èªã®èª¬æããæããã ã»ãŠãŒã¶ãŒã«èŠããæèšã¯ãUI å±€ã§äŸå€ã³ãŒãããåŒã// ãã¡ã€ã³å±€ïŒèšèªã«äŸåããªã throw new BusinessException(ErrorCode.InsufficientStock, productId); // UI å±€ïŒããã§åããŠããŒã«ã©ã€ãºãã catch (BusinessException ex) { ModelState.AddModelError("", _localizer[ex.Code.ToString(), ex.Args]); }äŸå€ã®äžã§æèšãäœããªãïŒã³ãŒããšãã©ã¡ãŒã¿ã ããæã€ïŒããšã§ã
- ãã°ã¯åžžã«äžå®ïŒéèšã»ã¢ã©ãŒããæ©èœããïŒ
- 衚瀺ã¯ãŠãŒã¶ãŒã®èšèª
- ãã¹ãã§æèšã«äŸåããªã
ãšãã 3 ã€ãåæã«æç«ããã
DI / äŸåæ§å転åå ã®
芳ç¹ã§ãããã¡ã€ã³å±€ãIStringLocalizerã«äŸåããªããšãã
æãŸãã圢ã«ãªãã
- åºæ¬ãœãã
- Office ãœãã
- ããžãã¹ã»ãœãã
- ãŠãŒãã£ãªãã£ã»ããŒã«
ãªã©ã®å Žå㯠.NET Framework ã®åœéåå¯Ÿå¿æ©èœã§ååã§ãããã
æ¥åã¢ããªã±ãŒã·ã§ã³ã®å Žåã¯äžååã§ããå Žåãå€ãã
äºåã«ä»¥äžã®æ¥åã·ã¹ãã ã«ãããåœéåã®èŠä»¶ã確èªããŠãããšè¯ãã
èšèªã«ãã£ãŠè¡šç€ºããã©ãã«çã®ãµã€ãºã®å€æŽãå¿
èŠãïŒäžèŠãïŒ
è±èªãšãã«ããã€ãã¯è¡šç€ºãããæååã®ãµã€ãºã®å·®ã倧ããã
-
äžèŠã®ïŒè±èªè¡šç€ºãéå»¶ã³ããããã«è¡šç€ºãããŠãããŸããªãïŒå Žåã¯ã
.NET ã®åœéåå¯Ÿå¿æ©èœã§ååã§ããã -
å¿ èŠã®ïŒè±èªè¡šç€ºãéå»¶ã³ããããã«è¡šç€ºãããªãïŒå Žåã¯ã
-
èšèªå¥ã«ç»é¢ãäœæããå¿ èŠãããã
-
ãµã€ãºã»äœçœ®ãªã©ã®æ å ±ããªãœãŒã¹ãã¡ã€ã«ã§ç®¡çããã
ïŒWindows Form ã®ã¿ããã®æ©èœãå®è£ ããŠããïŒ
-
衚瀺ãããæååã倿Žããå Žåã
ãã€ããªå€æŽïŒåé
åžãå¯èœãïŒäžå¯èœãïŒ
-
å¯èœãªå Žåã.NET ã®ãªãœãŒã¹ãã¡ã€ã«ã䜿çšã§ããã
ãªãœãŒã¹ãã¡ã€ã«ã¯ããã€ããª(dll)ã«å€æãããããã
æååã倿Žããæãã¹ããŒãã¯ã©ã€ã¢ã³ã端æ«ã«åé åžãå¿ èŠã«ãªãã -
äžå¯èœãªå Žåãç¬èªæ©èœã§å¯Ÿå¿ããå¿ èŠãããã
- äŸãã°ãããŒã¿ããŒã¹ã«æååæ
å ±ãæ ŒçŽããŠããå Žåã
ãã€ããªã倿Žãããªããããã¹ããŒãã¯ã©ã€ã¢ã³ã端æ«ã«åé åžãäžèŠã«ãªãã
- äŸãã°ãããŒã¿ããŒã¹ã«æååæ
å ±ãæ ŒçŽããŠããå Žåã
ãã€ããªå€æŽïŒåé
åžãäžå¯ã®å Žåã
衚瀺ãããæååã誰ãäœæãã©ã®ãããªæ¹æ³ã§å€æŽãããïŒ
-
ãšã³ããŠãŒã¶ããéçšè ããéçºè ããèæ ®ããã
-
Visual StudioïŒãªãœãŒã¹ãã¡ã€ã«ïŒã
䜿çšã倿ŽããŠãè¯ãå Žåã.NET ã®åœéåå¯Ÿå¿æ©èœã§ååã§ããã -
管çç»é¢ã«ãŠå€æŽããå Žåãç¬èªæ©èœã§å¯Ÿå¿ããå¿ èŠãããã
- äŸïŒç®¡çç»é¢ã§ããŒã¿ããŒã¹ã§ç®¡çãããŠããæååã倿Žããã
æ¥æãæ¥ä»ã OS ã®ãã±ãŒã«çã«äŸåããŠè¯ããïŒ
- æ¥æãæ¥ä»ã®è¡šèšã倿ŽãããŠãããŸããªãå Žåã.NET ã®åœéåå¯Ÿå¿æ©èœã§ååã§ããã
- æ¥æãæ¥ä»ã®è¡šèšãäžå®ã«ä¿ã€å Žåãç¬èªæ©èœã§ãã±ãŒã«çãåãæ¿ããå¿ èŠãããã
ç»é¢ã®ã¿ã€ãã«ãã©ãã«ããã¿ã³ã«è¡šç€ºãããæååã
åäžãã±ãŒã«ã®äžã§åçã«å€æŽããããšããããïŒ
-
åºå®å€ã®å Žåã.NET ã®åœéåå¯Ÿå¿æ©èœã§ååã§ããã
-
å¯å€å€ã®å Žåãç¬èªæ©èœã§å¯Ÿå¿ããå¿ èŠãããã
- äŸãã°ãæ¥åã¢ããªã±ãŒã·ã§ã³ã§ã¯
ç»é¢ã®ã¿ã€ãã«ãã©ãã«ã¯ããã°ã©ã äžã§å€æŽããããšãããã
- äŸãã°ãæ¥åã¢ããªã±ãŒã·ã§ã³ã§ã¯
ç»é¢äžã«è€æ°ã®èšèªïŒex. æ¥æ¬èªãšäžåœèªïŒãæ··åšããããšããããïŒ
- äžã€ã®èšèªãã衚瀺ãããªãå Žåã.NET ã®åœéåå¯Ÿå¿æ©èœã§ååã§ããã
- è€æ°ã®èšèªãåæã«è¡šç€ºãããå Žåãç¬èªæ©èœã§å¯Ÿå¿ããå¿ èŠãããã
è£è¶³ïŒãã® 6 ã€ã®ãã§ãã¯é ç®ãæ¬ããŒãžã®å®çšçãªæ žïŒ: åæã®
ãã®ç¯ã¯ããæšæºæ©èœã§è¶³ããããç¬èªæ©èœãèŠãããã
äºåã«åãåããããã®ãã§ãã¯ãªã¹ããšããŠãçŸåšãæçšã§ããã倿ã衚ã«ãŸãšããŠããã
èŠä»¶ æšæºïŒ .resxïŒã§è¶³ããç¬èªæ©èœãèŠã ã©ãã«ã®ãµã€ãºèª¿æŽ äžèŠãªãâ å¿ èŠãªãïŒWeb 㯠CSS ã§å¯ïŒ åé åžã®å¯åŠ å¯èœãªãâ äžå¯ãªã DB æ¹åŒ 倿Žãã人 éçºè ãªãâ éçšè ã»ãšã³ããŠãŒã¶ãªã管çç»é¢ æ¥ææžåŒ OS äŸåã§ãããªãâ åºå®ããããªãæç€ºæå® å®è¡äžã®åçå€æŽ åºå®å€ãªãâ å¯å€å€ãªã è€æ°èšèªã®åæè¡šç€º åäžèšèªãªãâ æ··åšãããªã ãç¬èªæ©èœãèŠããã«è©²åœããé ç®ã 1 ã€ã§ãããã°ã
DB æ¹åŒïŒãŸãã¯ãã€ããªããïŒãæ€èšããââãšããã®ã
æ¬ç¯ã®å®è·µçãªäœ¿ãæ¹ã«ãªã
ïŒASP.NET Web Formsã®åœéåå¯Ÿå¿ ã® DB æ¹åŒãåç §ïŒãASP.NET Core ã§ã¯
IStringLocalizerãšããæœè±¡ãããããã
ããŸã.resxã§äœããå¿ èŠã«ãªã£ããå®è£ ã ã DB ã«å·®ãæ¿ããã
ãšããæ®µéçãªç§»è¡ãå¯èœã§ããã
ããã¯æ¬ç¯ã®å€æãåŸåãã«ã§ããããšããç¹ã§å€§ããªé²æ©ãšèšããã
I/O ãçºçããå Žåã¯ããšã³ã³ãŒãã£ã³ã°ãæèããå¿ èŠãããã
-
æ¥æ¬èªãè±èªä»¥å€ã®ååœæåãæ±ãå Žåã
æåã»ããã¯ååœæåãå©çšå¯èœãª UTF-8, UTF-16 ã䜿ãã -
äœããææ°ã® JIS èŠæ Œã«ã¯ Unicode ã«ããå«ãŸããªã挢åãå€ãã
æ¥æ¬èªã ãã§ãã£ãŠã Unicode ç§»è¡ãå¿ èŠã«ãªã£ãŠããŠããã- æ°åžžçšæŒ¢åãåŒãèµ·ããæåã³ãŒãåé¡
ã- æ°åžžçšæŒ¢å衚ãè¿«ãUnicodeç§»è¡ããã·ããJISãã§ã¯å¯Ÿå¿äžå¯èœïŒITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20091209/341831/
- æ°åžžçšæŒ¢åãåŒãèµ·ããæåã³ãŒãåé¡
詳现ã¯ãã¡ããåç §ã®ããšã
ç§»è¡ã¡ã¢ïŒèª€åïŒ: åæã®ãUnicode 䌌ããå«ãŸããªããã¯
**ãUnicode ã«ããå«ãŸããªãã**ã®èª€å€æãšå€æãä¿®æ£ããã
ããã¥ã¡ã³ãã«ã¯ä»¥äžã®æ§ãªé ç®ãããã
- åæ±èª¬ææž
- Readme
- API ãªãã¡ã¬ã³ã¹
åèšèªåãã®ãã®ãéçã«çšæããããšã§å€èšèªå¯Ÿå¿ãè¡ãã
å å·ã»æå·®ã®ç®¡çã«ã€ããŠã
-
å å·ã»æå·®ã®æ å ±ã®ã¹ãã¢ã¯ã¬ãžã¹ããªãšãªã£ãŠããã
Windows Update ã«ããé©çšãããããã«ãªã£ãŠããã -
ãã®ãããã¬ãžã¹ããªä¿®æ£ã§ãã«ã¹ã¿ãã€ãºå¯èœã§ãããã
管çäžåé¡ãšãªããããªå Žåã¯ãç¬èªéšåãçšæããå¿ èŠãããã
ãã ããèªåã§ç®¡çããå¿ èŠãããããã管çã¯ç ©éã«ãªãã
-
å å·
Windows Update/Microsoft Updateãæ¯æç¬¬äºé±ã®æäŸãããçã§é åžãããäºå®ã§ãããã
.NET4 以éã§ã¯ãã¬ãžã¹ããªã«æ å ±ãæ ŒçŽãããŠããããã¬ãžã¹ããªä¿®æ£ã§
æ°èŠå å·ã«å¯Ÿå¿ã§ããã- Era Handling for the Japanese Calendar (Windows)
https://learn.microsoft.com/en-us/windows/win32/intl/era-handling-for-the-japanese-calendar
- Era Handling for the Japanese Calendar (Windows)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"1868 01 01"="ææ²»_æ_Meiji_M"
"1912 07 30"="倧æ£_倧_Taisho_T"
"1926 12 25"="æå_æ_Showa_S"
"1989 01 08"="å¹³æ_å¹³_Heisei_HE"
-
æå·®
- æ¹æ³: 調æŽèŠåã®ããã¿ã€ã ãŸãŒã³ãäœæãã
https://learn.microsoft.com/ja-jp/dotnet/standard/datetime/create-adjustment-rules
- æ¹æ³: 調æŽèŠåã®ããã¿ã€ã ãŸãŒã³ãäœæãã
ã¢ããªã±ãŒã·ã§ã³ã§å¿ èŠãªæ£ç¢ºãªã¿ã€ã ãŸãŒã³æ å ±ãã
次ã®ãããªçç±ã§ç¹å®ã®ã·ã¹ãã ã«ååšããªãå ŽåããããŸãã
- ããŒã«ã« ã·ã¹ãã ã®ã¬ãžã¹ããªã§ã¿ã€ã ãŸãŒã³ãå®çŸ©ãããŠããªãã
- ã¿ã€ã ãŸãŒã³ã«é¢ããããŒã¿ãã¬ãžã¹ããªã§å€æŽãŸãã¯åé€ãããŠããã
- ã¿ã€ã ãŸãŒã³ã«ãéå»ã®ç¹å®ã®æéã®ã¿ã€ã ãŸãŒã³èª¿æŽã«é¢ããæ£ç¢ºãªæ å ±ããªãã
- ãµããŒã¿ã€ã
http://www.tohoho-web.com/ex/draft/sumtime.htm- ã¿ã€ã ãŸãŒã³ã¯ã[ã³ã³ãããŒã«ããã«]â[æ¥ä»ãšæå»]â[ã¿ã€ã ãŸãŒã³]ã§éžæå¯èœã
- tzedit.exe ãããŠã³ããŒãããŠã¿ã€ã ãŸãŒã³æ å ±ãç·šéã§ããã
- ã¿ã€ã ãŸãŒã³æ å ±ã¯äžèšã®ã¬ãžã¹ããªã«æ ŒçŽãããŠããã
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
- ãã©ãžã«ã®å€æéãæ§æããæ¹æ³
http://support.microsoft.com/kb/317211/ja
è£è¶³ïŒLinux ã§ã¯ tzdataïŒ: .NET Coreãžã®ç§»è¡ ã«
䌎ããå å·ã»ã¿ã€ã ãŸãŒã³ã®æ å ±æºããã©ãããã©ãŒã ã§ç°ãªãç¹ã¯
æŒãããŠããå¿ èŠãããã
Windows Linux / macOS ã¿ã€ã ãŸãŒã³ ã¬ãžã¹ããªïŒWindows UpdateïŒ tzdataïŒ/usr/share/zoneinfoïŒå å· ã¬ãžã¹ããªïŒWindows UpdateïŒ ICU æŽæ°æ¹æ³ Windows Update ããã±ãŒãžæŽæ°ïŒ apt upgrade tzdataïŒã³ã³ããã§ã¯ç¹ã«æ³šæãèŠãã
ã»ã€ã¡ãŒãžããã«ãããæç¹ã® tzdata / ICU ãåºå®ããã â ãµããŒã¿ã€ã èŠåã®å€æŽã«è¿œéããªã â 宿çã«ããŒã¹ ã€ã¡ãŒãžãæŽæ°ããå¿ èŠããã ã»ãããã tzdata / ICU ãå ¥ã£ãŠããªãã€ã¡ãŒãžããã â ã¿ã€ã ãŸãŒã³å€æãäŸå€ã«ãªãRUN apt-get update && apt-get install -y tzdata libicu-devãã¬ãžã¹ããªãä¿®æ£ããã°å¯Ÿå¿ã§ããããšããåæã®èšè¿°ã¯
Windows ã«éã£ã話ã§ããã
ã¯ãã¹ãã©ãããã©ãŒã ã§ã¯ã©ã³ã¿ã€ã ãšããŒã¹ ã€ã¡ãŒãžã®
æŽæ°æ¹éãšããŠç®¡çããå¿ èŠãããã
-
å å·
Windows Update/Microsoft Updateãæ¯æç¬¬äºé±ã®æäŸãããçã§é åžãããäºå®ã§ãããã
å¹³æä»¥éãWindows Update/Microsoft Update ã§ãå å·ãé ä¿¡ãããå®çžŸã¯ãŸã ãªãã -
ãµããŒã¿ã€ã
æ¯å¹ŽãWindows Update/Microsoft Update ã§é ä»ãããŠããã- MSDN Blogs > Satisfy Me > Microsoft Windows August 2011 Updates
to Daylight Saving Time and Time Zones, including Russia
http://blogs.msdn.com/b/mthree/archive/2011/08/11/dst-081111.aspx
- MSDN Blogs > Satisfy Me > Microsoft Windows August 2011 Updates
è£è¶³ïŒä»€åã§ã¯å®éã«é ä¿¡ãããïŒ: åæã®
ãå¹³æä»¥éãå å·ãé ä¿¡ãããå®çžŸã¯ãŸã ãªããã¯
æ¬ããŒãžå·çæç¹ã®èšè¿°ã§ããã
2019 幎ã®ä»€åæ¹å ã§ã¯ãå®éã« Windows Update / .NET ã®æŽæ°ã§
å å·ãé ä¿¡ãããïŒKB4469068 ã»ãïŒããã®ããããå®è¡ç°å¢ãæŽæ°ããã°å¯Ÿå¿ã§ããããšããåæã¯
äžåºŠå®èšŒãããããšã«ãªãã
åè¿°ã®æ°å å·ïŒä»€åïŒæ¹å 察å¿ã§è¿°ã¹ã
**ãèªåã§å å·ããŒãã«ãæããªãã**ãšããæéã®åŠ¥åœæ§ã
è£ä»ãããã圢ã§ããã
-
åè
以äžã.NET ã®åæŠã«ã¬ã³ãã«ã€ããŠã
VBA ãã¯ããSQL Serverããã®ä»ã®è£œåã«ã€ããŠã¯ãæ å ±ãªãã-
Era Handling for the Japanese Calendar (Windows)
https://learn.microsoft.com/en-us/windows/win32/intl/era-handling-for-the-japanese-calendar -
åæŠè¡šç€ºïŒSystem.Globalization.CultureInfoïŒã«ã€ããŠ
https://social.msdn.microsoft.com/Forums/ja-JP/a93ec79d-69a5-4bb7-ae5d-a8aabfdcb9dd/systemglobalizationcultureinfo?forum=netfxgeneralja
-
Win 7 以é + .NET 4 以éãªããåãã«ããªãã§æ¹å 察å¿å¯èœã
ã¢ããªããã«ãããæã® .NET ããŒãžã§ã³ã§ã¯ãªãã
å®è¡ç°å¢ã Win 7 以é & .NET 4 以éã§ããäºãæ¡ä»¶ã
- e.g. : Win 10 + .NET 3.5 ãªã Ã
- e.g. : Win 7 + .NET 4 ãªã âïŒã¢ããªã .NET 2.0 ã§ãã«ããããŠããŠãâïŒ
-
å å·ãæ¹æ£ãããå Žåã®è¥¿æŠãšåæŠã®çžäºå€æã«ã€ããŠ
[JAPAN] - Community Blogs - Embarcadero Community
https://community.embarcadero.com/blogs/entry/year-convert-between-gregorian-and-japanese-new-era -
FAQ - ãã®ä» - Open æ£æ¢ Wiki > ãã®ä» > æ¹å 察å¿
https://opentouryo.osscons.jp/index.php?FAQ%20-%20%E3%81%9D%E3%81%AE%E4%BB%96 -
"æ°å å·å¯Ÿå¿ã»ãããŒ"ã§èããæ ã·ã¹æ åœã®èŠæ©ïœ¢7幎éã
æªæŽæ°ã®MS Office8000å°ã®PCãâŠâŠïœ£ | BUSINESS INSIDER JAPAN
https://www.businessinsider.jp/post-188728- æ°å
å·åã§äœ¿çšããæåã³ãŒãã«ã€ããŠïŒåšç¥ïŒ | çµæžç£æ¥ç
https://www.meti.go.jp/policy/it_policy/kaigen/20190405_kaigen_code.pdf
- æ°å
å·åã§äœ¿çšããæåã³ãŒãã«ã€ããŠïŒåšç¥ïŒ | çµæžç£æ¥ç
-
Microsoft
-
.NET Framework ã®æ°å å·å¯Ÿå¿äºå®ã«ã€ã㊠â Japan New Era Name Support Blog
https://blogs.technet.microsoft.com/jperablog/2018/06/25/netframework/ -
æ°å å·ãžã®å¯Ÿå¿ã«ã€ã㊠- Microsoft mscorp
https://www.microsoft.com/ja-jp/mscorp/newera/default.aspx -
æ¥æ¬ã®å å·ã®å€æŽã«ã€ã㊠- KB4469068
https://support.microsoft.com/ja-jp/help/4469068/ -
ã¢ããªã±ãŒã·ã§ã³ã®æ°å å·å¯Ÿå¿
https://learn.microsoft.com/ja-jp/windows/uwp/design/globalizing/japanese-era-change
-
-
仿ŽïŒçŽåãã€ã€ãšãïŒã§ããã"什å"察å¿ã«ã€ããŠã - OSSã³ã³ãœãŒã·ã¢ã
https://www.osscons.jp/joeuir4kl-537/
åœããåã ããWindows ãšä»çµã¿ãéãã®ã§å¯Ÿå¿ãç°ãªãã
- .NET Coreã«ãããæ°å
å·å¯Ÿå¿ã«ã€ã㊠- éã®å
ãšç¢§ã空
https://tech.tanaka733.net/entry/2018/03/a-new-era-for-dotnet-core
è£è¶³ïŒ.NET Core 以éã®å šäœåïŒ: æ¬ããŒãžå šäœãéããŠã
.NET Core 以éã§å€ãã£ãç¹ãæåŸã«ãŸãšããŠããã
é ç® .NET Framework .NET Core / .NET åœéåããŒã¿ã®æº WindowsïŒNLSïŒ ICUïŒWindows 10 1903 以éãæ¢å®ã§ ICUïŒ ãšã³ã³ãŒãã£ã³ã° 倿°ãå èµ èŠ CodePagesEncodingProviderïŒæåã³ãŒãïŒã¿ã€ã ãŸãŒã³ ID Windows åœ¢åŒ IANA / Windows 䞡察å¿ïŒ.NET 6+ïŒ å å· ã¬ãžã¹ã㪠ICU ã«ã«ãã£ã®ç¶æ¿ 4.6 以éã§æ¹å æ¢å®ã§åŒãç¶ãããïŒã«ã«ãã£ïŒ Invariant ã¢ãŒã ç¡ã InvariantGlobalizationã§ ICU ç¡ãã«ãã§ãã**æå€§ã®å€åã¯ãNLS ãã ICU ãžã**ã§ããã
ã»äžŠã¹æ¿ãé ã»å€§æåå°æå倿ã®çµæã Windows ãšåŸ®åŠã«ç°ãªãå Žåããã ã»ICU ã®ããŒãžã§ã³ã«ãã£ãŠçµæãå€ããåŸã ã»ã³ã³ããã« ICU ãç¡ããš Invariant ã§åãïŒéãã«å£ããïŒ**ç§»è¡æã¯ãæååã®äžŠã¹æ¿ãã»æ¯èŒã®çµæãå€ãã£ãŠããªããã**ã
æ€èšŒé ç®ã«å ¥ããŠããå¿ èŠããã
ïŒç¹ã«ãDB ã®ãœãŒãçµæãšçªãåãããŠããåŠçïŒã// Windows äºæã® NLS ã«æ»ãïŒ.NET 5+ãWindows ã®ã¿ïŒ // runtimeconfig.json // "System.Globalization.UseNls": true
Tags: ç§»è¡, ãã®ä»ãéçºã®è²ã , .NETéçº, åœéå察å¿