currTime = DateTime.Now.ToString("u");
上面的代码首先将时间格式化为yyyy-mm-dd hh-mm-ss
(Alpha数字)。
我想删除字母数字字符,所以我使用了
currTime = currTime.Substring(0, currTime.Length - 1);
然后我使用
将“.000”添加到最后 currTime = currTime + ".000";
然而,这会删除格式,并在显示时显示标准dd-mm-yyyy
格式。所以我的问题分为两部分:
因此...
如何在没有字母数字字符的情况下将DateTime.Now
格式化为yyyy-mm-dd hh:mm:ss
?
如何在不丢失格式的情况下添加“.000”?
答案 0 :(得分:6)
DateTime.Now.ToString(@"yyyy\-MM\-dd hh\-mm\-ss.000")
但您确定不想要DateTime.Now.ToString(@"yyyy\-MM\-dd hh\:mm\:ss.000")
吗?
答案 1 :(得分:1)
我恐怕只是不相信你。简单的字符串连接不会开始乱用字符串的其余部分。
这是一个简短但完整的示例,显示不更改:
using System;
class Test
{
static void Main()
{
string currTime = DateTime.Now.ToString("u");
currTime = currTime.Substring(0, currTime.Length - 1);
currTime = currTime + ".000";
Console.WriteLine(currTime);
}
}
输出:
2011-03-22 12:28:39.000
我认为这不是提出这种格式的最佳方式,但它肯定不会像你声称的那样表现。你能想出一个类似的简短但完整的程序来支持你的断言“这会删除格式并将其显示为标准的dd-mm-yyyy格式”吗?我的猜测是你没有看到你真正想到的你正在看到的东西,但如果没有一个完整的程序,很难说出真正发生了什么。
答案 2 :(得分:0)
这样的事情应该是这样做的,稍微改动会附加实际小数秒而不是硬编码的.000
:
var result = string.Format("{0:yyyy-MM-dd hh:mm:ss.fff}", DateTime.Now);