无法用冒号保存日期时间字符串

M W*_*M W 2 c# datetime

所以我一直在试图弄清楚如何保存日期时间字符串,以便它在小时和分钟之间显示一个冒号,到目前为止,我尝试做的一切似乎只是把它变成了一个点。

com.Parameters.Add(new SqliteParameter("@DateAdded", 
                                        DateTime.Now.ToString("dd.MM.yyyy - HH:mm")));
Run Code Online (Sandbox Code Playgroud)

给出:

day.month.year - hour.minute
Run Code Online (Sandbox Code Playgroud)

当我尝试另一种方式时;

com.Parameters.Add(new SqliteParameter("@DateAdded", 
                                         DateTime.Now.ToString("dd.MM.yyyy - HH/mm")));
Run Code Online (Sandbox Code Playgroud)

同样的事情发生:

day.month.year - hour.minute
Run Code Online (Sandbox Code Playgroud)

甚至尝试\在前面使用,":"但它只是给我一个错误。

Son*_*nül 7

":"格式说明具有特殊的意义定制的日期和时间格式字符串作为;

用当前文化或提供的文化时间分隔符替换我。

看起来您CurrentCultureTimeSeparator属性:so不同,您会得到不同的结果。

顺便说一句,您可以使用像':'as这样的单引号来逃避它;

com.Parameters.Add(new SqliteParameter("@DateAdded",
                                        DateTime.Now.ToString("dd.MM.yyyy - HH':'mm")));
Run Code Online (Sandbox Code Playgroud)

它是一样"/"自定义格式说明,以及。顺便说一下,您在第二个代码部分对其进行了测试。

此外,如果您决定将日期时间值保留为字符串,SQLite 会以ISO 8601 格式保存您的日期时间值。所以,在你的情况下,你应该像这样使用它;

com.Parameters.Add(new SqliteParameter("@DateAdded",
                                        DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss.fff")));
Run Code Online (Sandbox Code Playgroud)