C# 人类可读的日期格式

C# 人类可读的日期格式,c#,.net,date,user-experience,timespan,C#,.net,Date,User Experience,Timespan,您可能已经注意到,某些web应用程序(例如,GMail的某些部分)显示日期的格式比简单的DD/MM/YYYY更易于阅读 例如,如果我在23日打开一个邮件项目(写作时正好是3天前),我会得到以下信息: 12月23日(3天前) 我想在我自己的web应用程序中实现类似的逻辑 例如,在处理.NET TimeSpan对象时,我希望将其转换为以下文本: 2个月 三天 是否有一个.NET库已经能够做到这一点 如果不是的话,我可能会构建一些基本的、开源的东西 我在这里做了一个基本的开始: public sta

您可能已经注意到,某些web应用程序(例如,GMail的某些部分)显示日期的格式比简单的DD/MM/YYYY更易于阅读

例如,如果我在23日打开一个邮件项目(写作时正好是3天前),我会得到以下信息:

12月23日(3天前)

我想在我自己的web应用程序中实现类似的逻辑

例如,在处理.NET TimeSpan对象时,我希望将其转换为以下文本:

2个月

三天

是否有一个.NET库已经能够做到这一点

如果不是的话,我可能会构建一些基本的、开源的东西


我在这里做了一个基本的开始:

public static class TimeSpanHelpers
{
    public static string ToHumanReadableString(
        this TimeSpan timeSpan)
    {
        if (timeSpan.TotalDays > 30)
            return (timeSpan.TotalDays / 30) + " month(s)";

        if (timeSpan.TotalDays > 7)
            return (timeSpan.TotalDays / 7) + " week(s)";

        return (timeSpan.TotalDays) + " day(s)";
    }
}

小组正在做这件事。过来参加这个活动吧。忘了提到项目位置项目另一个做这件事的图书馆:

(在NuGet上提供)

试试人性化

努吉:

Install-Package Humanizer

最后,我使用了我需要的as来支持未来的日期,比如从现在起3天。

请看:我在我的博客上有一个简单的算法,您可以扩展:恐怕与您的没有太大的不同……太棒了……我知道有人会问这个问题,但我不知道在搜索框中键入什么词。请看这个问题:您会找到f为相对时间(即“5分钟前”、“10天前”)找到几个C#实现。很酷的东西!我会去那里。看起来很酷。你能告诉我们应该在节点时间项目中找什么地方吗?你做了吗?差不多10年了:)它工作正常,但似乎不能做未来的日期(例如,我希望它说“在2天内”)
Install-Package Humanizer