.net DateTime 格式化隐藏时间(如果是午夜)?

发布于 2024-11-27 14:05:53 字数 176 浏览 1 评论 0原文

我正在研究格式化日期时间以在图表上显示,到目前为止效果很好。我有格式字符串:

M/dd/yyyy HH:mm:ss

,它按照我希望的方式打印,但以下内容除外:如果时间是午夜,我想完全隐藏 HH:mm:ss。

是否可以不使用自定义 iformatprovider?

谢谢!

I'm working on formatting datetime's to display on a graph, and its working great so far. I have the format string:

M/dd/yyyy HH:mm:ss

and it prints as I'd like it to except the following: I want to completely hide the HH:mm:ss if the time is midnight.

Is it possible to do without a custom iformatprovider?

Thanks!

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

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

发布评论

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

评论(4

别再吹冷风 2024-12-04 14:05:53
DateTime time = DateTime.Now; 
string txt = time.ToString(time == time.Date ? "M/dd/yyyy" : "M/dd/yyyy HH:mm:ss");
DateTime time = DateTime.Now; 
string txt = time.ToString(time == time.Date ? "M/dd/yyyy" : "M/dd/yyyy HH:mm:ss");
还不是爱你 2024-12-04 14:05:53
DateTime time = DateTime.Now; 

string format = "";

if (time.Hour == 0) 
{
   format = "M/dd/yyyy";
} 
else 
{
   format = "M/dd/yyyy HH:mm:ss";
}
DateTime time = DateTime.Now; 

string format = "";

if (time.Hour == 0) 
{
   format = "M/dd/yyyy";
} 
else 
{
   format = "M/dd/yyyy HH:mm:ss";
}
枕梦 2024-12-04 14:05:53

@JDunkerley 提出的解决方案的文化无关版本是:

DateTime time = DateTime.Now;
string txt = time.ToString(time == time.Date ? "d" : "g");

有关标准日期和时间格式字符串的更多信息 此处

A culture-independent version of the solution proposed by @JDunkerley would be:

DateTime time = DateTime.Now;
string txt = time.ToString(time == time.Date ? "d" : "g");

More about standard date and time format strings here.

弱骨蛰伏 2024-12-04 14:05:53

所提出的解决方案不是一个很好的解决方案,因为它没有考虑用户的本地化时间格式,并且简单地假设美国英语

这是应该如何完成的:

public static string formatDateTimeWithTimeIfNotMidnight(DateTime dt)
{
    //RETURN:
    //      = String for 'dt' that will have time only if it's not midnight

    if (dt != dt.Date)
    {
        //Use time
        return dt.ToString();
    }
    else
    {
        //Only date
        return dt.ToShortDateString();
    }
}

The proposed solution is not a very good one because it does not take into account user's localized time format, and simply assumes US English.

Here's how it should've been done:

public static string formatDateTimeWithTimeIfNotMidnight(DateTime dt)
{
    //RETURN:
    //      = String for 'dt' that will have time only if it's not midnight

    if (dt != dt.Date)
    {
        //Use time
        return dt.ToString();
    }
    else
    {
        //Only date
        return dt.ToShortDateString();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文