在C#中,当我通过日期示例时。毫米/日/年...
它在解析后显示这些结果
// Example 1
DateTime t = new DateTime();
DateTime.TryParse("02/06/2013 00:00:00 PM", out t)
// Example 2
DateTime t = new DateTime();
DateTime.TryParse("02/06/2013 00:00:10 PM", out t)
// Example 3
DateTime t = new DateTime();
DateTime.TryParse("02/06/2013 00:10:10 PM", out t)
结果
2/6/2013 12:00:00 PM
2/6/2013 12:00:10 PM
2/6/2013 12:10:10 PM
在sql server中传递日期时显示错误的日期。如何解决这些类型或问题。如果这些类型的日期无效。
答案 0 :(得分:2)
如果您可以yyyy-MM-dd
格式设置日期格式,那么效果会更好 - 否则您可能会遇到与语言区域相关的问题
答案 1 :(得分:2)
无论文化如何,您都可以使用DateTime.TryParseExact来解析特定格式。我相信你需要dd-MM-yyyy HH:mm:ss PM。
答案 2 :(得分:2)
可以使用DateTime.ParseExact或DateTime.TryParseExact
例如。
string dateString = "Mon 16 Jun 8:30 AM 2008"; //Valid
string format = "ddd dd MMM h:mm tt yyyy";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime))
{
Console.WriteLine(dateTime); // 6/16/2008 8:30:00 AM
}
解析UTC的日期时间
DateTime.ParseExact(inputDate,“yyyy-MM-ddTHH:mm:ss.0000000Z”,null)。ToUniversalTime();
使用格式M / d / yyyy
解析日期时间DateTime.ParseExact(inputDate,“M / d / yyyy h:mm”,CultureInfo.InvariantCulture);
答案 3 :(得分:0)
你展示的解析似乎没问题。它们在很大程度上依赖于当前线程的当前文化。如果您不喜欢,请在CultureInfo.InvariantCulture
来电中指定TryParse
作为格式提供商。
您对SQL服务器的疑问尚不清楚。什么SQL软件,以及该服务器具有哪些区域设置?你是如何与它沟通的?
获得DateTime
值t
后,您可以通过多种方式对其进行格式化。例如,您可以使用
t.ToString("O")
获得具有完全精度的“big-endian”字符串。请参阅Standard Date and Time Format Strings和Custom Date and Time Format Strings。
PS!在声明它时(当它将用于t
参数时),您不必分配out
。