日本的完整日期时间产生问号

时间:2015-05-06 10:14:26

标签: c# date time

我在尝试让我的代码中正确显示完整的日期日期时遇到问题(我需要代码适用于全球所有地区语言)。在下面突出显示的部分是我希望它显示的方式,但我得到:2015?5?6? 11时05分21秒

此日期稍后写入MS SQL服务器,在该服务器中,尽管需要正确的排序规则,它也会显示问号

Japanese Full Date Format

currDate = "Date: " + DateTime.Now.ToString("F");

Console.WriteLine("Current Date: " + currDate);

感谢任何帮助。 感谢

5 个答案:

答案 0 :(得分:2)

您的控制台无法显示您要显示的字符,因为默认情况下它设置为ASCII字符。这应该显示您的日语需求:

Console.OutputEncoding = System.Text.Encoding.Unicode

pixelbadger是对的:即使使用良好的编码,您的字体也可能无法显示此类字符。请参阅this answer which is about how to display japanese Kanji in cmd windows?

答案 1 :(得分:1)

您可以使用CultureInfo类,以便按字符串指定文化:

CultureInfo culture = new CultureInfo("en-US");
string.Format(culture, "SDate in US format: {0:d}", DateTime.Now);

答案 2 :(得分:1)

您需要指定文化。对于日语,它是ja-JP

尝试将代码重写为

CultureInfo ci = new CultureInfo("ja-JP");
currDate = "Date: " + DateTime.Now.ToString("F",ci);
Console.WriteLine("Current Date: " + currDate);

答案 3 :(得分:0)

您的窗户上没有安装日语表。

从Windows Update安装日语转换表,在“控制面板”的“区域设置”选项卡中选择它并重新启动。之后它应该正常工作。

测试表是否正确安装的好方法是写chcp 932'在CMD中,它应该显示日文字符。另外要记住的是控制台使用的字体支持日文字符,标准的UTF-8能够呈现日文字符。

答案 4 :(得分:0)

到晚会很晚,但是没有一个答案告诉您如何实际以日文日期格式显示,而只是西方格式,加上一些汉字,即2018年9月24日

所以我希望这对以后的人有所帮助。 显示日语日期的正确方法如下。

public void GetDate()
{
    CultureInfo culture = new CultureInfo("ja-JP", true);
    culture.DateTimeFormat.Calendar = new JapaneseCalendar();

    DateTime newDate = new DateTime(2018, 9, 24);
    string currDate = newDate.ToString("ggyy年M月d日", culture);
    Console.WriteLine("Current Date: " + currDate);

   // OutPut:"Current Date: 平成30年9月24日"
}

因此,您得到的是2018年9月24日,而不是此平成30年9月24日,这是日本日历日期的正确格式。我希望这会有所帮助。