如何将日期时间从“0h:23h”转换为“1h:24h”?

时间:2013-04-16 07:23:42

标签: c# datetime

我的日期时间有问题。在我的sql数据中,我有1-24h的时间数据,但是在C#datetime中我只能建模从0h到23h的值。如何将其转换为1-24h?

提前致谢!

我怎么能表达你的理解,我的英语不够好。好难过。 我有这样的数据

1/1/2010 1:00 20mm
1/1/2010 2:00 30mm
1/1/2010 3:00 50mm
....
1/1/2010 23:00 10mm
1/1/2010 24:00 5mm
2/1/2010 1:00 30mm
2/1/2010 2:00 8mm

如你所见,没有0:00,他们写的是凌晨0点24:00。

4 个答案:

答案 0 :(得分:1)

试试吧。

Datetime.Now.AddHours(-12)

它可能对你有帮助。

答案 1 :(得分:0)

0-23h有效,因为0:00是午夜,23:59:59是一秒到明天。我不确定你是如何在SQL中获得1-24的,说实话,我总是看到SQL Server中存储的数据为00-23。

如果您正在寻找格式化要显示的数据,请查看以下链接; http://msdn.microsoft.com/en-gb/library/8kb3ddd4.aspx

答案 2 :(得分:0)

为此目的使用ParseMilitaryTime

以下文档中包含了您要执行的操作的所有示例和说明:

http://www.dotnetperls.com/24-hour-time

答案 3 :(得分:0)

您可以编写一个为您执行字符串格式化的扩展方法。

string str = System.DateTime.Now.ToMySQLstring();

这是扩展方法:

namespace System
{


    public static class TimeSpanExtensions
    {


        public static string ToMySQLstring(this DateTime dt)
        {
            int hour = dt.Hour + 1;
            int min = dt.Minute;
            int sec = dt.Second;
            int msec = dt.Millisecond;

            int day = dt.Day;
            int month = dt.Month;
            int year = dt.Year;

            //2009-05-01T14:18:12.430
            return String.Format("{0}-{1:00}-{2:00}T{3:00}:{4:00}:{5:00}.{6:000}", year, month, day, hour, min, sec, msec);
        }


    } // End Class


} // End Namespace