c# – 使用当前文化定义的12或24小时格式,从DateTime获取一小时

c# – 使用当前文化定义的12或24小时格式,从DateTime获取一小时,第1张

概述.Net内置了DateTime的ToShortTimeString()函数,该函数使用CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern格式.它为en-US返回:“下午5:00”.对于24小时文化,如de-DE,它将返回“17:00”. 我想要的只是一个方法,只要返回一小时(所以上面的例子中的“下午5点”和“17”)适用于每一种文化 .Net内置了DateTime的ToShortTimeString()函数,该函数使用CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern格式.它为en-US返回:“下午5:00”.对于24小时文化,如de-DE,它将返回“17:00”.

我想要的只是一个方法,只要返回一小时(所以上面的例子中的“下午5点”和“17”)适用于每一种文化.什么是最好的/最干净的方式来做到这一点?

谢谢!

解决方法
// displays "15" because my current culture is en-GBConsole.Writeline(DateTime.Now.ToHourString());// displays "3 pm"Console.Writeline(DateTime.Now.ToHourString(new CultureInfo("en-US")));// displays "15"Console.Writeline(DateTime.Now.ToHourString(new CultureInfo("de-DE")));// ...public static class DateTimeExtensions{    public static string ToHourString(this DateTime dt)    {        return dt.ToHourString(null);    }    public static string ToHourString(this DateTime dt,IFormatProvIDer provIDer)    {        DateTimeFormatInfo dtfi = DateTimeFormatInfo.GetInstance(provIDer);        string format = Regex.Replace(dtfi.ShortTimePattern,@"[^hHt\s]","");        format = Regex.Replace(format,@"\s+"," ").Trim();        if (format.Length == 0)            return "";        if (format.Length == 1)            format = '%' + format;        return dt.ToString(format,dtfi);    }}
总结

以上是内存溢出为你收集整理的c# – 使用当前文化定义的12或24小时格式,从DateTime获取一小时全部内容,希望文章能够帮你解决c# – 使用当前文化定义的12或24小时格式,从DateTime获取一小时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存