我正在使用 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。我怎样才能改变这个?
数据库中的DateTime 列(对于 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");
你可以使用类似的东西
Datetime.Now.AddMinutes(15)
用你的变量替换 DateTime.Now
ATimeSpan
是持续时间,如果要以 12 小时格式格式化输出,则应使用DateTime
(和DateTime.ToString(String)方法)
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");