我的机器有一个奇怪的问题。当我使用DateTime时,它会显示两次。
有谁知道为什么日期会这样?
DateTime.Now returns date as 05/04/2015 12:00 AM 12:00:00 AM
注意:上午12:00 和上午12:00:00
请帮帮我。我想将数据作为DateTime返回。我无法格式化它(格式即使第二次删除)。
我在互联网上搜索得足够多,它总是显示时间跨度,时差。它没有显示我的确切问题。
以下是您获得的屏幕截图,并告诉我这是怎么回事?
答案 0 :(得分:5)
将它归还给什么? DateTime.Now
会返回DateTime
,而不是格式化的string
。如果您将其视为文本,则会将其转换为string
。那么问题就是发生在哪里。
答案 1 :(得分:1)
我可以通过两种方式来考虑您可能得到的结果:
当前文化可能已被修改为发出该格式。
例如:
var customCulture = (CultureInfo) new CultureInfo("en-US").Clone();
customCulture.DateTimeFormat.LongTimePattern = "hh:mm tt h:mm:ss tt";
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
var s = DateTime.Now.ToString();
Console.WriteLine(s); // "6/3/2015 10:17 AM 10:17:59 AM"
Windows控制面板中的日期和时间设置可能已使用自定义设置进行了更改。这可以在以下网址找到:"Change date,time, or, number formats"
- "Formats" tab
- "Additional settings"
- "Time"
。
例如,如果您更改"长时间"格式如下:
然后,您将获得与默认文化设置相同的格式。
由于您在Visual Studio调试器中看到了结果,因此更有可能使用#2。