我在尝试让我的代码中正确显示完整的日期日期时遇到问题(我需要代码适用于全球所有地区语言)。在下面突出显示的部分是我希望它显示的方式,但我得到:2015?5?6? 11时05分21秒
此日期稍后写入MS SQL服务器,在该服务器中,尽管需要正确的排序规则,它也会显示问号
currDate = "Date: " + DateTime.Now.ToString("F");
Console.WriteLine("Current Date: " + currDate);
感谢任何帮助。 感谢
答案 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日
,这是日本日历日期的正确格式。我希望这会有所帮助。