C#公历与日本和历之间的转化
2011-07-24 14:55
190 查看
纪元名称 | 纪元缩写 | 公历日期 |
平成 (Heisei) | 平 (H, h) | 1989 年 1 月 8 日至今 |
昭和 (Showa) | 昭 (S, s) | 1926 年 12 月 25 日至 1989 年 1 月 7 日 |
大正 (Taisho) | 大 (T, t) | 1912 年 7 月 30 日至 1926 年 12 月 24 日 |
明治 (Meiji) | 明 (M, m) | 1868 年 9 月 8 日至 1912 年 7 月 29 日 |
static void Main(string[] args) { {//公历 转为 日本和历 CultureInfo ci = new CultureInfo("ja-JP"); Calendar cal = new JapaneseCalendar(); ci.DateTimeFormat.Calendar = cal; string strDate = "2011/07/24"; DateTime dt = DateTime.Parse(strDate); string strJpDate = dt.ToString("ggyy/MM/dd", ci); Console.WriteLine("{0} = {1}", strDate, strJpDate); // output: 平成23/07/24 } {//公历 转为 日本和历简写 CultureInfo ci = new CultureInfo("ja-JP"); Calendar cal = new JapaneseCalendar(); ci.DateTimeFormat.Calendar = cal; string strDate = "2011/07/24"; DateTime dt = DateTime.Parse(strDate); string strJpDate = ci.DateTimeFormat.GetAbbreviatedEraName(cal.GetEra(dt)) + dt.ToString("yy/MM/dd", ci); Console.WriteLine("{0} = {1}", strDate, strJpDate); // output: 平18/09/26 } {//公历 转为 日本和历英文简写 CultureInfo ci = new CultureInfo("ja-JP"); Calendar cal = new JapaneseCalendar(); ci.DateTimeFormat.Calendar = cal; string strDate = "2011/07/24"; DateTime dt = DateTime.Parse(strDate); Type t = typeof(DateTimeFormatInfo); PropertyInfo pi = t.GetProperty("AbbreviatedEnglishEraNames", BindingFlags.NonPublic | BindingFlags.Instance); string[] engEras = (string[])pi.GetValue(ci.DateTimeFormat, null); int era = cal.GetEra(dt); string strJpDate = engEras[era - 1] + dt.ToString("yy/MM/dd", ci); Console.WriteLine("{0} = {1}", strDate, strJpDate); // output: H18/09/26 } {//日本和历 转为 公历 CultureInfo ci = new CultureInfo("ja-JP"); Calendar cal = new JapaneseCalendar(); ci.DateTimeFormat.Calendar = cal; string strJpDate = "平成23/07/24"; string strDate = DateTime.ParseExact(strJpDate, "ggyy/MM/dd", ci).ToString("yyyy/MM/dd"); Console.WriteLine("{0} = {1}", strJpDate, strDate); // output: 2011/07/24 } {//日本和历简写 转为 公历 CultureInfo ci = new CultureInfo("ja-JP"); Calendar cal = new JapaneseCalendar(); ci.DateTimeFormat.Calendar = cal; string strJpDate = "平23/07/24"; string strDate = DateTime.ParseExact(strJpDate, "ggyy/MM/dd", ci).ToString("yyyy/MM/dd"); Console.WriteLine("{0} = {1}", strJpDate, strDate); // output: 2011/07/24 } Console.ReadKey(); }
相关文章推荐
- C# 中2,10,16进制及其ASCII码之间转化
- C#中char[]与string之间的转换;byte[]与string之间的转化
- C#中字符数组,字节数组和string之间的转化(转)
- C# 四个字节十六进制数和单精度浮点数之间的相互转化
- C#资源文件与与资源名称字符串之间的互相转化
- 【C#】byte[]数组中有值大于127时与string之间的相互转化
- C#字符串与数值之间的转化
- C#中字符数组,字节数组和string之间的转化
- C# 中2,10,16进制及其ASCII码之间转化
- C#资源文件与与资源名称字符串之间的互相转化
- C# 中2,10,16进制及其ASCII码之间转化
- C#中字符数组,字节数组和string之间的转化
- C#中 byte[] Image Bitmap之间的相互转化
- C# 中2,10,16进制及其ASCII码之间转化
- C#、Asp.Net 农历与阴历之间相互转化工具类
- C#中字符数组,字节数组和string之间的转化
- C# 中2,10,16进制及其ASCII码之间转化
- C# 中2,10,16进制及其ASCII码之间转化
- C# 中2,10,16进制及其ASCII码之间转化
- C# 中2,10,16进制及其ASCII码之间转化