连接格式化字符串时出现问题

发布于 2024-10-25 08:52:51 字数 504 浏览 1 评论 0原文

 currTime = DateTime.Now.ToString("u");

上面的代码首先将现在的时间格式化为yyyy-mm-dd hh-mm-ss(字母数字)。

我想删除字母数字字符,所以我使用了

 currTime = currTime.Substring(0, currTime.Length - 1);

然后在末尾添加了“.000”,

 currTime = currTime + ".000";

但是,这会删除格式,并且在显示时显示标准的 dd-mm-yyyy 格式。所以我的问题分为两部分:

那么...

如何将 DateTime.Now 格式化为 yyyy-mm-dd hh:mm:ss 而不带字母数字字符?

如何添加“.000”而不丢失我的格式?

 currTime = DateTime.Now.ToString("u");

The code above first formats the time now to yyyy-mm-dd hh-mm-ss (Alpha numerical).

I wanted to remove the alpha numerical character so I used

 currTime = currTime.Substring(0, currTime.Length - 1);

I then added ".000" to the end using

 currTime = currTime + ".000";

However, this then removes the formatting and when displayed shows the standard dd-mm-yyyy format. So my question is in two parts:

So...

How do I format DateTime.Now to yyyy-mm-dd hh:mm:ss without the alpha numerical character?

And how to add ".000" without losing my format?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

抱猫软卧 2024-11-01 08:52:51

DateTime.Now.ToString(@"yyyy\-MM\-dd hh\-mm\-ss.000") 不过你确定不想要 DateTime.Now.ToString (@"yyyy\-MM\-dd hh\:mm\:ss.000")

DateTime.Now.ToString(@"yyyy\-MM\-dd hh\-mm\-ss.000") though are you sure you don't want DateTime.Now.ToString(@"yyyy\-MM\-dd hh\:mm\:ss.000")?

十雾 2024-11-01 08:52:51

恐怕我根本不相信你。简单的字符串连接不会开始扰乱字符串的其余部分。

这是一个简短但完整的示例,显示它没有发生变化:

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 格式”?我的猜测是,您所看到的并不是您真正认为所看到的,但是如果没有完整的程序,就很难判断到底发生了什么。

I'm afraid I simply don't believe you. Simple string concatenation isn't going to start messing around with the rest of the string.

Here's a short but complete example showing it not changing:

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);
    }
}    

Output:

2011-03-22 12:28:39.000

I don't think that's the best way of coming up with that format, but it certainly isn't behaving the way you claim. Can you come up with a similar short but complete program which backs up your assertion that "this then removes the formatting and display it as the standard dd-mm-yyyy format"? My guess is that you're not seeing what you actually think you're seeing, but without a complete program it's hard to tell what's really going on.

月亮坠入山谷 2024-11-01 08:52:51

像这样的东西应该可以解决问题,只需稍加修改即可附加实际秒数,而不是硬编码的.000

var result = string.Format("{0:yyyy-MM-dd hh:mm:ss.fff}", DateTime.Now);

Something like this ought to do the trick, with the slight alteration that appends the actual fraction of seconds rather than a hard-coded .000:

var result = string.Format("{0:yyyy-MM-dd hh:mm:ss.fff}", DateTime.Now);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文