在c# / ASP.net中获取当前日期

来源:互联网 发布:第一学历 知乎 编辑:程序博客网 时间:2024/04/25 07:23

在c# / ASP.net中获取当前日期


在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。

//获取日期+时间
DateTime.Now.ToString();            // 2008-9-4 20:02:10
DateTime.Now.ToLocalTime().ToString();        // 2008-9-4 20:12:12

//获取日期
DateTime.Now.ToLongDateString().ToString();    // 2008年9月4日
DateTime.Now.ToShortDateString().ToString();    // 2008-9-4
DateTime.Now.ToString("yyyy-MM-dd");        // 2008-09-04
DateTime.Now.Date.ToString();            // 2008-9-4 0:00:00
//获取时间
DateTime.Now.ToLongTimeString().ToString();   // 20:16:16
DateTime.Now.ToShortTimeString().ToString();   // 20:16
DateTime.Now.ToString("hh:mm:ss");        // 08:05:57
DateTime.Now.TimeOfDay.ToString();        // 20:33:50.7187500

//其他
DateTime.ToFileTime().ToString();       // 128650040212500000
DateTime.Now.ToFileTimeUtc().ToString();   // 128650040772968750
DateTime.Now.ToOADate().ToString();       // 39695.8461709606
DateTime.Now.ToUniversalTime().ToString();   // 2008-9-4 12:19:14

DateTime.Now.Year.ToString();          获取年份   // 2008
DateTime.Now.Month.ToString();      获取月份   // 9
DateTime.Now.DayOfWeek.ToString(); 获取星期   // Thursday
DateTime.Now.DayOfYear.ToString(); 获取第几天   // 248
DateTime.Now.Hour.ToString();          获取小时   // 20
DateTime.Now.Minute.ToString();     获取分钟   // 31
DateTime.Now.Second.ToString();     获取秒数   // 45

//n为一个数,可以数整数,也可以事小数
dt.AddYears(n).ToString();   //时间加n年
dt.AddDays(n).ToString();   //加n天
dt.AddHours(n).ToString();   //加n小时
dt.AddMonths(n).ToString();   //加n个月
dt.AddSeconds(n).ToString();   //加n秒
dt.AddMinutes(n).ToString();   //加n分

1.string strTime = DateTime.Now.ToLongTimeString();


2.

DateTime dt = DateTime.Now;   
String str = dt.ToString("yyyy-MM-dd");

或者
string str = DateTime.Now.ToString("yyyy-MM-dd");   
or   
string str = DateTime.Now.ToShortDateString();



3.DateTime.Now.ToString("yyyy-MM-dd");取日期,得到如2005-02-18的格式
DateTime.Now.ToString("hh:mm:ss");取时间,得到如10:45:30的格式

格式 显示 
M/d/yy 12/7/58 
d-MMM 7-Dec 
d-MMMM-yy 7-December-58 
d MMMM 7 December 
MMMM yy December 58 
hh:mm tt 08:50 PM 
h:mm:ss t 8:50:35 P 
H:mm 20:50 
H:mm:ss 20:50:35 
M/d/yyyy H:mm 12/7/1958 20:50

字符 说明 
(:) 时间分隔符。在某些区域设置中,可以使用其他字符表示时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由系统的 LocaleID 值确定。 
(/) 日期分隔符。在某些区域设置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的区域设置确定。 
(%) 用于表明不论尾随什么字母,随后字符都应该以单字母格式读取。也用于表明单字母格式应以用户定义格式读取。有关详细信息,请参阅下面的内容。 
d 将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。 
dd 将日显示为带前导零的数字(如 01)。 
ddd 将日显示为缩写形式(例如 Sun)。 
dddd 将日显示为全名(例如 Sunday)。 
M 将月份显示为不带前导零的数字(如一月表示为 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %M。 
MM 将月份显示为带前导零的数字(例如 01/12/01)。 
MMM 将月份显示为缩写形式(例如 Jan)。 
MMMM 将月份显示为完整月份名(例如 January)。 
gg 显示时代/纪元字符串(例如 A.D.) 
h 使用12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。如果这是用户定义的数字格式中的唯一字符,请使用 %h。 
hh 使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。 
H 使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %H。 
HH 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。 
m 将分钟显示为不带前导零的数字(例如 12:1:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %m。 
mm 将分钟显示为带前导零的数字(例如 12:01:15)。 
s 将秒显示为不带前导零的数字(例如 12:15:5)。如果这是用户定义的数字格式中的唯一字符,请使用 %s。 
ss 将秒显示为带前导零的数字(例如 12:15:05)。 
f 显示秒的小数部分。例如,ff 将精确显示到百分之一秒,而 ffff 将精确显示到万分之一秒。用户定义格式中最多可使用七个 f 符号。如果这是用户定义的数字格式中的唯一字符,请使用 %f。 
t 使用 12 小时制,并对中午之前的任一小时显示大写的 A,对中午到 11:59 P.M 之间的任一小时显示大写的 P。如果这是用户定义的数字格式中的唯一字符,请使用 %t。 
tt 使用 12 小时制,并对中午之前任一小时显示大写的 AM;对中午到 11:59 P.M 之间的任一小时显示大写的 PM。 
y 将年份 (0-9) 显示为不带前导零的数字。如果这是用户定义的数字格式中的唯一字符,请使用 %y。 
yy 以带前导零的两位数字格式显示年份(如果适用)。 
yyy 以三位数字格式显示年份。 
yyyy 以四位数字格式显示年份。 
z 显示不带前导零的时区偏移量(如 -8)。如果这是用户定义的数字格式中的唯一字符,请使用 %z。 
zz 显示带前导零的时区偏移量(例如 -08) 
zzz 显示完整的时区偏移量(例如 -08:00)

获取星期几的方法
string dt = DateTime.Today.DayOfWeek.ToString();
            //根据取得的星期英文单词返回汉字 
            switch (dt)
            {
                case "Monday":
                    date = "星期一";
                    break;
                case "Tuesday":
                    date = "星期二";
                    break;
                case "Wednesday":
                    date = "星期三";
                    break;
                case "Thursday":
                    date = "星期四";
                    break;
                case "Friday":
                    date = "星期五";
                    break;
                case "Saturday":
                    date = "星期六";
                    break;
                case "Sunday":
                    date = "星期日";
                    break;
            }
获取当前时间(2012年5月2日星期三(农历四月十二日)14:05)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Globalization;


namespace link
{
    public partial class index : System.Web.UI.Page
    {
        public string date;
        public string time;


        public string ChineseTimeNow = "";
        public string ForignTimeNow = "";
        private static ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();
        private static string ChineseNumber = "〇一二三四五六七八九";
        public const string CelestialStem = "甲乙丙丁戊己庚辛壬癸";
        public const string TerrestrialBranch = "子丑寅卯辰巳午未申酉戌亥";
        public static readonly string[] ChineseDayName = new string[] {
            "初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
            "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
            "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"};
        public static readonly string[] ChineseMonthName = new string[] { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" };
        protected void Page_Load(object sender, EventArgs e)
        {
            //date = System.DateTime.Now.Date;
            date = DateTime.Now.ToLongDateString().ToString();
            //获取当前日期是星期几 
            string dt = DateTime.Today.DayOfWeek.ToString();
            //根据取得的星期英文单词返回汉字 
            switch (dt)
            {
                case "Monday":
                    date += "星期一";
                    break;
                case "Tuesday":
                    date += "星期二";
                    break;
                case "Wednesday":
                    date += "星期三";
                    break;
                case "Thursday":
                    date += "星期四";
                    break;
                case "Friday":
                    date += "星期五";
                    break;
                case "Saturday":
                    date += "星期六";
                    break;
                case "Sunday":
                    date += "星期日";
                    break;
            }
            GetChineseDate(DateTime.Now);
            time = DateTime.Now.ToShortTimeString().ToString();
        }


        /// <summary>
        /// 获取一个公历日期对应的完整的农历日期
        /// </summary>
        /// <param name="time">一个公历日期</param>
        /// <returns>农历日期</returns>
        public string GetChineseDate(DateTime time)
        {
            string strY = GetYear(time);
            string strM = GetMonth(time);
            string strD = GetDay(time);
            //string strSB = GetStemBranch(time);
            //string strDate = strY + "年 " + strM + "月 " + strD;
            //string strDate = strY + "(" + strSB + ")年 " + strM + "月 " + strD;
            string strDate1 = strM + "月" + strD;
            date += "(农历"+strDate1+")";
            return strDate1;
        }


        ///// <summary>
        ///// 获取一个公历日期的农历干支纪年
        ///// </summary>
        ///// <param name="time">一个公历日期</param>
        ///// <returns>农历干支纪年</returns>
        //public string GetStemBranch(DateTime time)
        //{
        //    int sexagenaryYear = Calendar.GetSexagenaryYear(time);
        //    string stemBranch = CelestialStem.Substring(sexagenaryYear % 10 - 1, 1) +TerrestrialBranch.Substring(sexagenaryYear % 12 - 1, 1);
        //    return stemBranch;
        //}


        /// <summary>
        /// 获取一个公历日期的农历年份
        /// </summary>
        /// <param name="time">一个公历日期</param>
        /// <returns>农历年份</returns>
        public string GetYear(DateTime time)
        {
            StringBuilder sb = new StringBuilder();
            int year = calendar.GetYear(time);
            int d;
            do
            {
                d = year % 10;
                sb.Insert(0, ChineseNumber[d]);
                year = year / 10;
            } while (year > 0);
            return sb.ToString();
        }


        /// <summary>
        /// 获取一个公历日期的农历月份
        /// </summary>
        /// <param name="time">一个公历日期</param>
        /// <returns>农历月份</returns>
        public string GetMonth(DateTime time)
        {
            int month = calendar.GetMonth(time);
            int year = calendar.GetYear(time);
            int leap = 0;


            //正月不可能闰月
            for (int i = 3; i <= month; i++)
            {
                if (calendar.IsLeapMonth(year, i))
                {
                    leap = i;
                    break; //一年中最多有一个闰月
                }


            }
            if (leap > 0) month--;
            return (leap == month + 1 ? "闰" : "") + ChineseMonthName[month - 1];
        }


        /// <summary>
        /// 获取一个公历日期的农历日
        /// </summary>
        /// <param name="time">一个公历日期</param>
        /// <returns>农历日</returns>
        public string GetDay(DateTime time)
        {
            return ChineseDayName[calendar.GetDayOfMonth(time) - 1];
        }
    }
}

  1. /// &lt;summary&gt;
  2. /// 计算两个日期的时间间隔
  3. /// &lt;/summary&gt;
  4. /// &lt;param name=&quot;DateTime1&quot;&gt;第一个日期和时间&lt;/param&gt;
  5. /// &lt;param name=&quot;DateTime2&quot;&gt;第二个日期和时间&lt;/param&gt;
  6. /// &lt;returns&gt;&lt;/returns&gt;
  7. private string DateDiff(DateTime DateTime1, DateTime DateTime2)
  8. {
  9.     string dateDiff = null;

  10.     TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
  11.     TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
  12.     TimeSpan ts = ts1.Subtract(ts2).Duration();
  13.     dateDiff = ts.Days.ToString() &quot;天&quot;
  14.           ts.Hours.ToString() &quot;小时&quot;
  15.           ts.Minutes.ToString() &quot;分钟&quot;
  16.           ts.Seconds.ToString() &quot;秒&quot;;  

  17.     return dateDiff;

  18. }