.NET日期时间处理

来源:互联网 发布:qq纯真ip数据库 编辑:程序博客网 时间:2024/06/07 04:59

时间日期

1.DateTime.ParseExact

很多时候我们获取的时间是数字形式表示的,好比20140127134015.927856,通过这个方法

DateTime.ParseExact("20140127134015.927856", "yyyyMMddHHmmss.ffffff", null);就会得到正确的时间格式数据。

2.Guid数据常见的是 10244798-9a34-4245-b1ef-9143f9b1e68a形式,通过就会是102447989a344245b1ef9143f9b1e68a形式,去除不想要的-符号

guid.ToString("N");DateTime.Now.ToString("d") ;//获取到的日期格式为eg :2013/11/14dm.JsDate = string.Format("{0:yyyy/MM/ddHH:mm:ss}", dtSimplex.Rows[i]["f_time"]);

获取日期+时间

DateTime.Now.ToString(); // 2008-9-4 20:02:10DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12

//获取日期

DateTime.Now.ToString(); // 2008-9-4 20:02:10DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12DateTime.Now.ToLongDateString().ToString(); // 2008年9月4日DateTime.Now.ToShortDateString().ToString(); // 2008-9-4DateTime.Now.ToString("yyyy-MM-dd"); // 2008-09-04DateTime.Now.Date.ToString(); // 2008-9-4 0:00:00

获取时间

DateTime.Now.ToLongTimeString().ToString(); // 20:16:16DateTime.Now.ToShortTimeString().ToString(); // 20:16DateTime.Now.ToString("hh:mm:ss"); // 08:05:57DateTime.Now.TimeOfDay.ToString(); // 20:33:50.7187500

其他获方式

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

一、返回每个月的第一天后最后一天

public static void ReturnDateFormat(int month, out string firstDay, out string lastDay){    int year = DateTime.Now.Year + month / 12;    if (month != 12)    {        month = month % 12;    }    switch (month)    {        case 1:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");            break;        case 2:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            if (DateTime.IsLeapYear(DateTime.Now.Year))                lastDay = DateTime.Now.ToString(year + "-0" + month + "-29");            else                lastDay = DateTime.Now.ToString(year + "-0" + month + "-28");            break;        case 3:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString("yyyy-0" + month + "-31");            break;        case 4:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");            break;        case 5:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");            break;        case 6:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");            break;        case 7:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");            break;        case 8:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");            break;        case 9:            firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");            break;        case 10:            firstDay = DateTime.Now.ToString(year + "-" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-" + month + "-31");            break;        case 11:            firstDay = DateTime.Now.ToString(year + "-" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-" + month + "-30");            break;        default:            firstDay = DateTime.Now.ToString(year + "-" + month + "-01");            lastDay = DateTime.Now.ToString(year + "-" + month + "-31");            break;    }}

时间日期转换

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataTimeDemo{    /// <summary>    /// 时间类    /// 1、SecondToMinute(int Second) 把秒转换成分钟    /// </summary>    public class TimeHelper    {        /// <summary>        /// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间        /// </summary>        /// <param name="dt">年月日分隔符</param>        /// <param name="Separator"></param>        /// <returns></returns>        public string GetFormatDate(DateTime dt, char Separator)        {            if (dt != null && !dt.Equals(DBNull.Value))            {                string tem = string.Format("yyyy{0}MM{1}dd", Separator, Separator);                return dt.ToString(tem);            }            else            {                return GetFormatDate(DateTime.Now, Separator);            }        }        /// <summary>        /// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间        /// </summary>        /// <param name="dt"></param>        /// <param name="Separator"></param>        /// <returns></returns>        public string GetFormatTime(DateTime dt, char Separator)        {            if (dt != null && !dt.Equals(DBNull.Value))            {                string tem = string.Format("hh{0}mm{1}ss", Separator, Separator);                return dt.ToString(tem);            }            else            {                return GetFormatDate(DateTime.Now, Separator);            }        }        /// <summary>        /// 把秒转换成分钟        /// </summary>        /// <returns></returns>        public static int SecondToMinute(int Second)        {            decimal mm = (decimal)((decimal)Second / (decimal)60);            return Convert.ToInt32(Math.Ceiling(mm));        }        #region 返回某年某月最后一天        /// <summary>        /// 返回某年某月最后一天        /// </summary>        /// <param name="year">年份</param>        /// <param name="month">月份</param>        /// <returns></returns>        public static int GetMonthLastDate(int year, int month)        {            DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));            int Day = lastDay.Day;            return Day;        }        #endregion        #region 返回时间差        public static string DateDiff(DateTime DateTime1, DateTime DateTime2)        {            string dateDiff = null;            try            {                //TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);                //TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);                //TimeSpan ts = ts1.Subtract(ts2).Duration();                TimeSpan ts = DateTime2 - DateTime1;                if (ts.Days >= 1)                {                    dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";                }                else                {                    if (ts.Hours > 1)                    {                        dateDiff = ts.Hours.ToString() + "小时前";                    }                    else                    {                        dateDiff = ts.Minutes.ToString() + "分钟前";                    }                }            }            catch            { }            return dateDiff;        }        #endregion        #region 获得两个日期的间隔        /// <summary>        /// 获得两个日期的间隔        /// </summary>        /// <param name="DateTime1">日期一。</param>        /// <param name="DateTime2">日期二。</param>        /// <returns>日期间隔TimeSpan。</returns>        public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2)        {            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);            TimeSpan ts = ts1.Subtract(ts2).Duration();            return ts;        }        #endregion        #region 格式化日期时间        /// <summary>        /// 格式化日期时间        /// </summary>        /// <param name="dateTime1">日期时间</param>        /// <param name="dateMode">显示模式</param>        /// <returns>0-9种模式的日期</returns>        public static string FormatDate(DateTime dateTime1, string dateMode)        {            switch (dateMode)            {                case "0":                    return dateTime1.ToString("yyyy-MM-dd");                case "1":                    return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");                case "2":                    return dateTime1.ToString("yyyy/MM/dd");                case "3":                    return dateTime1.ToString("yyyy年MM月dd日");                case "4":                    return dateTime1.ToString("MM-dd");                case "5":                    return dateTime1.ToString("MM/dd");                case "6":                    return dateTime1.ToString("MM月dd日");                case "7":                    return dateTime1.ToString("yyyy-MM");                case "8":                    return dateTime1.ToString("yyyy/MM");                case "9":                    return dateTime1.ToString("yyyy年MM月");                default:                    return dateTime1.ToString();            }        }        #endregion        #region 得到随机日期        /// <summary>        /// 得到随机日期        /// </summary>        /// <param name="time1">起始日期</param>        /// <param name="time2">结束日期</param>        /// <returns>间隔日期之间的 随机日期</returns>        public static DateTime GetRandomTime(DateTime time1, DateTime time2)        {            Random random = new Random();            DateTime minTime = new DateTime();            DateTime maxTime = new DateTime();            System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);            // 获取两个时间相隔的秒数            double dTotalSecontds = ts.TotalSeconds;            int iTotalSecontds = 0;            if (dTotalSecontds > System.Int32.MaxValue)            {                iTotalSecontds = System.Int32.MaxValue;            }            else if (dTotalSecontds < System.Int32.MinValue)            {                iTotalSecontds = System.Int32.MinValue;            }            else            {                iTotalSecontds = (int)dTotalSecontds;            }            if (iTotalSecontds > 0)            {                minTime = time2;                maxTime = time1;            }            else if (iTotalSecontds < 0)            {                minTime = time1;                maxTime = time2;            }            else            {                return time1;            }            int maxValue = iTotalSecontds;            if (iTotalSecontds <= System.Int32.MinValue)                maxValue = System.Int32.MinValue + 1;            int i = random.Next(System.Math.Abs(maxValue));            return minTime.AddSeconds(i);        }        #endregion    }}
0 0