将TimeSpan转换为12小时格式

时间:2013-07-26 08:25:03

标签: .net timespan

我正在使用C#。我需要在15分钟(从早上7点到晚上10点)的时间间隔插入数据库。我使用过这段代码:

          for (int i = 0; i < 61; i++){
          TimeSpan curtime = new TimeSpan(7, y, 00);
           y=y+15;}

但这会让我在24小时内退回,即从7:00:00到22:00:00。我怎么能改变这个?

4 个答案:

答案 0 :(得分:1)

DateTime column in a database(对于SQL Server)存储为一对四字节数值,其中前4个字节是特定基准时间(1900/1/1)和第二个字节的天数四个字节是从午夜开始的毫秒数 所以,当你谈到format时,这是你的日期时间值的显示格式,你会看到它的外观,因为从内部格式到字符串的转换是可以理解的被我们。但是在数据库中,日期时间始终以其内部格式存储

因此,为了节省您的时间段,无需准备特殊格式,只需使用当前日期并在每个循环中增加15分钟,并让数据库在其认为合适时存储它

 List<DateTime> slots = new List<DateTime>();
 DateTime dt = new DateTime(2013, 7, 26, 7, 0, 0);
 for (int i = 0; i < 61; i++)
 {
      // Save in a list
      slots.Add(dt);

      // Calculate next slot
      dt = dt.AddMinutes(15);
 }
 // Save all the slots to the database
 SaveSlots(slots);

显示日期时间

DataTable slots = GetSlotsFromDataBase();
foreach(DataRow r in slots.Rows)
   Console.WriteLine(Convert.ToDateTime(r[0]).ToString("hh:mm tt");

答案 1 :(得分:0)

DateTime http://msdn.microsoft.com/en-us/library/system.datetime.aspx结构会很有用,因为TimeSpan http://msdn.microsoft.com/en-us/library/system.timespan.aspx表示的时间间隔不是一天中的某个时间

否则试试这个

var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt");

答案 2 :(得分:0)

你可以使用像

这样的东西
Datetime.Now.AddMinutes(15)

将您的变量

替换为DateTime.Now

答案 3 :(得分:0)

TimeSpan持续一段时间,如果要以12小时格式格式化输出,则应使用DateTime(以及DateTime.ToString(String)方法)