当前位置: 首页 > 编程语言 > C#

如何将24小时格式的TimeSpan转换为12小时格式的TimeSpan?分享

时间:2023-04-10 16:32:50 C#

如何把24小时制的TimeSpan转换成12小时制的TimeSpan?我有TimeSpan数据表示为24小时格式,如14:00:00,我想将其转换为12小时格式,下午2:00,我用谷歌搜索并找到了stackoverflow和msdn相关的东西,但没有解决这个问题,任何人都可以帮我?提前致谢。更新看来我可以将24小时格式的TimeSpan转换为字符串,但不能将字符串转换为12小时格式的时间跨度?但我仍然有很多好的答案,谢谢!TimeSpan表示时间间隔,而不是一天中的某个时间。DateTime结构更可能是您正在寻找的。(将我分散的评论总结在一个答案中。)首先,您需要了解TimeSpan表示时间间隔。此间隔在内部表示为滴答计数,而不是字符串14:00:00和字符串2:00PM。只有在将TimeSpan转换为字符串时才能讨论这两种不同的字符串表示形式。从一种表示切换到另一种表示不会更改或转换存储在TimeSpan中的滴答计数。在下午2:00而不是14:00:00写作是关于日期/时间格式和文化的。这全部由DateTime类处理。但是,即使TimeSpan表示时间间隔,它也非常适合表示一天中的时间(DateTime.TimeOfDay返回TimeSpan)。因此,将其用于此目的并非没有道理。要执行所描述的格式设置,您需要依赖DateTime的格式设置逻辑或简单地创建您自己的格式设置代码。您需要先将TimeSpan转换为DateTime对象,然后使用您需要的任何DateTime格式:vart=DateTime.Now.TimeOfDay;Console.WriteLine(newDateTime(t.Ticks).ToString("hh:mm:sstt"));ToShortTimeString()也可以工作,但它依赖于区域设置,因此它不会在非美国系统上正确显示(或正确显示,取决于你如何看待它)。TimeSpan表示一个间隔(时间之间的差异),而不是日期或时间,因此以24或12小时格式定义它没有意义。我假设你真的想要一个DateTime。例如今天下午2点:TimeSpants=TimeSpan.FromHours(14);日期时间dt=DateTime.Today.Add(ts);然后,您可以根据需要格式化该日期:Stringformatted=String.Format("{0:d/M/yyyyhh:mm:ss}",dt);//"12.4.101202:00:00"-德语(de-DE)http://msdn.microsoft.com/en-us/library/az4se3k1%28v=vs.100%29.aspx试试这个代码:整数时区=0;此字符串给出12小时格式字符串time=DateTime.Now.AddHours(-timezone).ToString("hh:mm:sstt");此字符串提供24小时格式字符串time=DateTime.Now.AddHours(-timezone).ToString("HH:mm:sstt");假设你保持在24小时范围内,你可以通过从今天开始从一个DateTime(或任何日期)中减去一个负的TimeSpan来达到你想要的效果,然后去掉日期部分:DateTimedt=DateTime.Today;dt.Subtract(-TimeSpan.FromHours(14)).ToShortTimeString();Output:2:00pm以上是C#学习教程:HowtoconvertaTimeSpanin24-hourformattoaTimeSpanin12-hourformat?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——Stringformatted=yourDateTimeValue.ToString("hh:mm:sstt");本文收集自网络,不代表任何内容,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: