.net 将时间跨度转换为12小时格式

.net 将时间跨度转换为12小时格式,.net,timespan,.net,Timespan,我用的是C#。我需要在数据库中插入的时间间隔为15分钟(从上午7点到晚上10点)。我使用了以下代码: for (int i = 0; i < 61; i++){ TimeSpan curtime = new TimeSpan(7, y, 00); y=y+15;} for(int i=0;i

我用的是C#。我需要在数据库中插入的时间间隔为15分钟(从上午7点到晚上10点)。我使用了以下代码:

          for (int i = 0; i < 61; i++){
          TimeSpan curtime = new TimeSpan(7, y, 00);
           y=y+15;}
for(int i=0;i<61;i++){
TimeSpan curtime=新的TimeSpan(7,y,00);
y=y+15;}
但这会在24小时内返回插槽,即从7:00:00到22:00:00。我怎样才能改变这个

DateTime结构将很有用,因为TimeSpan表示时间间隔而不是一天中的某个时间

否则就试试这个

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

你可以用一些东西

Datetime.Now.AddMinutes(15)

重新使用DateTime。现在使用变量A
TimeSpan
的持续时间,如果要将输出格式化为12小时格式(与SQL Server一样),则应使用
DateTime
(及其方法)存储为一对四字节数值,其中前四个字节是从特定基准时间(1900/1/1)算起的天数,后四个字节是从午夜算起的毫秒数。
因此,当您谈论
格式时,这是datetime值的显示格式,您可以按照它的外观获得它,因为我们可以理解它是从内部格式转换为字符串的。但在数据库中,日期时间始终以其内部格式存储

因此,为了节省时间,无需准备特殊格式,只需在每个循环中使用当前日期和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);

你能更好地解释一下什么是“格式”吗?您要在数据库中的哪个数据类型中存储格式?我在数据库中按时间排序。它存储为13:00:00,但我想存储为01:00:00
DataTable slots = GetSlotsFromDataBase();
foreach(DataRow r in slots.Rows)
   Console.WriteLine(Convert.ToDateTime(r[0]).ToString("hh:mm tt");