一、ASP.NET时间操作
二、Asp.net 时间操作基类(短日期,长日期,时间差)
Code
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace EC
{
/// <summary>
/// 时间操作函数
/// </summary>
public class TimeObject
{
/// <summary>
/// 时间差
/// </summary>
/// <param name="starttime">开始时间</param>
/// <param name="endtime">结束时间</param>
/// <returns></returns>
public static string GetTimeSpan(DateTime starttime, DateTime endtime)
{
TimeSpan ts = endtime - starttime;
return string.Format("{0}时{1}分{2}秒{3}毫秒", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
}
/// <summary>
/// 转称为月-日:09-12
/// </summary>
/// <param name="d">日期</param>
/// <returns></returns>
public static string ToDateMonthDay(DateTime d)
{
return d.ToString("MM-dd");
}
/// <summary>
/// <param name="d"></param>
/// <returns></returns>
public static string ToDateString(DateTime d)
{
return d.ToString("yyyy-MM-dd");
}
/// <summary>
/// 转换为:小时:分:秒 00:29:58
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public static string ToTimeString(DateTime t)
{
return t.ToString("HH:mm:ss");
}
/// <summary>
/// 转换为长时间:2006-09-12 00:30:57
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string ToDateTimeString(DateTime dt)
{
return dt.ToString("yyyy-MM-dd HH:mm:ss");
}
}
}
三、 关于Access 是Date()类型字段的数据取值:
1、Label1.Text= Convert.toDate(dr1["字段"]).ToString("yyyy-MM-dd");
2、Label1.Text = System.DateTime.Now.ToShortDateString();
ToShortDateString的输出格式和你服务器的时间格式设定有关的,输出的不一定是yyyy-MM-dd格式。
你在控制面板改一下就知道了。
DateTime dt = DateTime.Now;
转化成字符串
DateTime dt = DateTime.Now;
string str = dt.ToString(); //这是最直接的转化方法
string str2 = dt.ToString("yyyy-MM-dd HH:mm:ss"); //yyyy、mm、dd 是格式模式,大小写敏感
DateTime 的 ToString 的格式模式大小写敏感,请注意大小写,各模式之间可以互相组合,常见的模式如下:
yyyy 年,四位数表示。
yy 年,两位数表示。
MM 月,小于 10 时,有前导零。
M 月,小于 10 时,没有前导零。
dd 日,小于 10 时,有前导零。
d 日,小于 10 时,没有前导零。
HH 时(24 小时制),小于 10 时,有前导零。
H 时(24 小时制),小于 10 时,没有前导零。
hh 时(12 小时制),小于 10 时,有前导零。
h 时(12 小时制),小于 10 时,没有前导零。
mm 分。小于 10 时,有前导零。
m 分。小于 10 时,没有前导零。
ss 秒。小于 10 时,有前导零。
s 秒。小于 10 时,没有前导零。
获取年、月、日、时、分、秒等
DateTime dt = DateTime.Now;
int y = dt.Year; //年
int m = dt.Month; //月
int d = dt.Day; //日,注意是 Day,不是 Date
int h = dt.Hour; //时
int n = dt.Minute; //分
int s = dt.Second; //秒
int ms = dt.Millisecond; //毫秒
long t = dt.Ticks; //一个数字,用于表示该时间,注意类型为 long
时间比较
DateTime dt1 = DateTime.Now;
DateTime dt2 = dt1.AddYears(3);
int ct1 = dt1.
CompareTo(dt2); //dt1 早于 dt2,返回 -1
int ct2 = dt2.
CompareTo(dt1); //dt2 晚于 dt1,返回 1
int ct3 = dt2.
CompareTo(dt2); //dt2 与 dt2 相等,返回 0
DateTime dt1 = DateTime.Now;
DateTime dt2 = dt1.AddYears(3);
bool b = dt1.
Equals(dt2); //dt1 与 dt2 不相等,返回 false
时间加减
DateTime dt = DateTime.Now;
dt = dt.AddYears(1); //加 1 年
dt = dt.AddMonths(-1); //减 1 月
dt = dt.AddDays(13); //加 13 日
dt = dt.AddHours(1); //时
dt = dt.AddMinutes(1); //分
dt = dt.AddSeconds(1); //秒
dt = dt.AddMilliseconds(1); //毫秒
dt = dt.AddTicks(1); //Ticket,用数字表示当前时间
参数为正,表示加;参数为负,表示减。注意拼写。函数应该返回一个值,比如是:dt = dt.AddYears(1),而不是:dt.AddYears(1)。
还有一个方法是 Add,其语法为:
DateTime DateTime.Add(TimeSpan ValueType);
关于 TimeSpan,请继续阅览本文。
时间减运算
前面的时间加减是对一个时间进行加减,这里是对两个时间进行减运算(用 -),返回的结果类型为 TimeSpan。
DateTime dt1 = DateTime.Now;
DateTime dt2 = dt1.AddDays(3);
TimeSpan ts = dt1 - dt2;
TimeSpan 的属性 Days、Hours、Minutes、Seconds、Milliseconds、Tickets,分别返回相差的天数、时数、分数、秒数、毫秒数、Tickets。有正负之分。
TimsSpan 的属性 TotalDays、TotalHours、TotalMinutes、TotalSeconds、TotalMilliseconds,分别返回以天、时、分、秒、毫秒为单位的相差值。有正负之分。
比如:dt1 比 dt2 早整整 3 天,按上述程序,则:
Days 为 -3,Hours 为 0;
TotalDays 为 -3,TotalHours 为 -72(3 天为 72 小时)。