zoukankan      html  css  js  c++  java
  • 日期处理

    https://www.cnblogs.com/artech/archive/2010/09/04/1817833.html

    日期处理

                    string date = DateTime.Now.ToString("yyyyMMddHHmmss");//20191031090553
                    DateTime date2 = DateTime.ParseExact(date.Trim(), "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
                    string date3 = DateTime.Now.ToString("yyyyMMddHHmmssffff");//201910310919457223
                    DateTime date4 = DateTime.ParseExact(date3.Trim(), "yyyyMMddHHmmssffff", System.Globalization.CultureInfo.CurrentCulture);
                    var a = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff"); //2019/10/31 09:15:05:2071
                    var b = DateTime.Now.ToString("yyyy年MM月dd日");//2019年6月18日
                    var b1 = DateTime.Now.ToLongDateString();//2019年6月18日
                    var c = DateTime.Now.ToString("MM月dd日");//6月18日
                    var d = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//2019-06-18 14:22:06
                    var e = DateTime.Now.ToString("yyyy-MM-dd");//2019-06-18
                    var f = DateTime.Now.AddDays(1).ToString();//2019/6/19 14:26:52 
                    var g = DateTime.Now.ToString("yyyy年");//2019年
                    var h = DateTime.Now.ToString("HH:mm:ss");//14:29:16
     string filePath = 1 + "多媒体" + string.Format("{0:yyyy年MM月dd日HH时mm分ss秒}", DateTime.Now) + ".xml";

                      DateTime dt = DateTime.ParseExact("20181123051641","yyyyMMddhhmmss", System.Globalization.CultureInfo.CurrentCulture);

     

     long和DateTime相互转换

    // DateTime --> long
    public static long ConvertDateTimeToLong(DateTime dt)
    {
        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        TimeSpan toNow = dt.Subtract(dtStart);
        long timeStamp = toNow.Ticks;
        timeStamp = long.Parse(timeStamp.ToString().Substring(0, timeStamp.ToString().Length - 4));
        return timeStamp;
    }
    
    
    // long --> DateTime
    public static DateTime ConvertLongToDateTime(long d)
    {
        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        long lTime = long.Parse(d + "0000");
        TimeSpan toNow = new TimeSpan(lTime);
        DateTime dtResult = dtStart.Add(toNow);
        return dtResult;
    }
    测试:
    string time = "1490782464000";
    DateTime dt = TimeUtils.ConvertLongToDateTime(long.Parse(time ));
    System.Console.WriteLine(dt.ToString());

     补充

    方法一:Convert.ToDateTime(string)
    
    string格式有要求,必须是yyyy-MM-dd hh:mm:ss
    
    ================================================
    
    方法二:Convert.ToDateTime(string, IFormatProvider)
    
    DateTime dt;
    
    DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo();
    
    dtFormat.ShortDatePattern = "yyyy/MM/dd";
    
    dt = Convert.ToDateTime("2011/05/26", dtFormat);
    
    ================================================
    
    方法二:DateTime.ParseExact()
    
    string dateString = "20110526";
    
    DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
    
    或者
    
    DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
    
     
    
    附参考信息:
    
    CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture("en-US");
    string format = "ddd MMM d HH:mm:ss zz00 yyyy";
    string stringValue = DateTime.Now.ToString(format, cultureInfo); // 得到日期字符串
    DateTime datetime = DateTime.ParseExact("Wed Aug 25 16:28:03 +0800 2010", format, cultureInfo); // 将字符串转换成日期
    其他
    日期格式:yyyyMMdd HH:mm:ss(注意此字符串的字母大小写很严格)
    yyyy:代表年份
    MM:  代表月份
    dd:  代表天
    HH:  代表小时(24小时制)
    mm:  代表分钟
    ss:  代表秒
    DateTime.Now.ToShortTimeString() 
    DateTime dt = DateTime.Now; 
    dt.ToString();//2005-11-5 13:21:25 
    dt.ToFileTime().ToString();//127756416859912816 
    dt.ToFileTimeUtc().ToString();//127756704859912816 
    dt.ToLocalTime().ToString();//2005-11-5 21:21:25 
    dt.ToLongDateString().ToString();//2005年11月5日 
    dt.ToLongTimeString().ToString();//13:21:25 
    dt.ToOADate().ToString();//38661.5565508218 
    dt.ToShortDateString().ToString();//2005-11-5 
    dt.ToShortTimeString().ToString();//13:21 
    dt.ToUniversalTime().ToString();//2005-11-5 5:21:25 
    dt.Year.ToString();//2005 
    dt.Date.ToString();//2005-11-5 0:00:00 
    dt.DayOfWeek.ToString();//Saturday 
    dt.DayOfYear.ToString();//309 
    dt.Hour.ToString();//13 
    dt.Millisecond.ToString();//441 
    dt.Minute.ToString();//30 
    dt.Month.ToString();//11 
    dt.Second.ToString();//28 
    dt.Ticks.ToString();//632667942284412864 
    dt.TimeOfDay.ToString();//13:30:28.4412864 
    dt.ToString();//2005-11-5 13:47:04 
    dt.AddYears(1).ToString();//2006-11-5 13:47:04 
    dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 
    dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 
    dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 
    dt.AddMonths(1).ToString();//2005-12-5 13:47:04 
    dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05 
    dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10 
    dt.AddTicks(1000).ToString();//2005-11-5 13:47:04 
    dt.CompareTo(dt).ToString();//0 
    dt.Add(?).ToString();//问号为一个时间段 
    dt.Equals("2005-11-6 16:11:04").ToString();//False 
    dt.Equals(dt).ToString();//True 
    dt.GetHashCode().ToString();//1474088234 
    dt.GetType().ToString();//System.DateTime 
    dt.GetTypeCode().ToString();//DateTime
    
    dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25 
    dt.GetDateTimeFormats('t')[0].ToString();//14:06 
    dt.GetDateTimeFormats('y')[0].ToString();//2005年11月 
    dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日 
    dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05 
    dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05 
    dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日 
    dt.GetDateTimeFormats('M')[0].ToString();//11月5日 
    dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06 
    dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06 
    dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT 
    string.Format("{0:d}",dt);//2005-11-5 
    string.Format("{0}",dt);//2005年11月5日 
    string.Format("{0:f}",dt);//2005年11月5日 14:23 
    string.Format("{0:F}",dt);//2005年11月5日 14:23:23 
    string.Format("{0:g}",dt);//2005-11-5 14:23 
    string.Format("{0:G}",dt);//2005-11-5 14:23:23 
    string.Format("{0:M}",dt);//11月5日 
    string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT 
    string.Format("{0:s}",dt);//2005-11-05T14:23:23 
    string.Format("{0:t}",dt);//14:23 
    string.Format("{0:T}",dt);//14:23:23 
    string.Format("{0:u}",dt);//2005-11-05 14:23:23Z 
    string.Format("{0:U}",dt);//2005年11月5日 6:23:23 
    string.Format("{0:Y}",dt);//2005年11月 
    string.Format("{0}",dt);//2005-11-5 14:23:23 
    string.Format("{0:yyyyMMddHHmmssffff}",dt); 
    计算2个日期之间的天数差 
    ----------------------------------------------- 
    DateTime dt1 = Convert.DateTime("2007-8-1"); 
    DateTime dt2 = Convert.DateTime("2007-8-15"); 
    TimeSpan span = dt2.Subtract(dt1); 
    int dayDiff = span.Days + 1; 
    计算某年某月的天数 
    ----------------------------------------------- 
    int days = DateTime.DaysInMonth(2007, 8); 
    days = 31; 
    给日期增加一天、减少一天 
    ----------------------------------------------- 
    DateTime dt =DateTime.Now; 
    dt.AddDays(1); //增加一天 
    dt.AddDays(-1);//减少一天 
    其它年份方法类似... 
    Oracle SQL里转换日期函数 
    ----------------------------------------------- 
    to_date("2007-6-6",'YYYY-MM-DD"); 
    to_date("2007/6/6",'yyyy/mm/dd");
  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/macT/p/11769361.html
Copyright © 2011-2022 走看看