Solución de formato de tiempo 100% efectiva_C #

Formato de salida formateada

string.Format();

proyecto valor
Carácter de formato Atributos / descripción relacionados
re ShortDatePattern
re LongDatePattern
F Fecha y hora completas (fecha larga y hora corta)
F FullDateTimePattern (fecha larga y hora larga)
gramo Regular (fecha corta y tiempo corto)
GRAMO Regular (fecha corta y larga duración)
m 、 M MesDíaPatrón
r 、 R RFC1123 Patrón
s SortableDateTimePattern usando la hora local (basado en ISO 8601)
t Patrón de tiempo corto
T LongTimePattern
tu Formato UniversalSortableDateTimePattern utilizado para mostrar la hora universal
U Fecha y hora completas con hora universal (fecha larga y hora larga)
y、Y AñoMesPatrón

ejemplo:

DateTime dt = DateTime.Now;
// 时间格式 yyyy/MM/dd
string time1 = string.Format("{0:d}",dt);
Console.WriteLine(time1);// 2020/10/31
// 时间格式 yyyy年MM月dd日
string time2 = string.Format("{0:D}",dt);
Console.WriteLine(time2);// 2020年10月31日

// 时间格式 yyyy年MM月
string time3 = string.Format("{0:Y}",dt);
Console.WriteLine(time4);// 2020年10月

// 时间格式 yyyy年MM月dd日 h:mm
string time4 = string.Format("{0:f}",dt);
Console.WriteLine(time4);// 2020年10月31日 9:15

// 时间格式 yyyy年MM月dd日 h:mm:ss
string time5 = string.Format("{0:F}",dt);
Console.WriteLine(time5);// 2020年10月31日 9:18:25

// 时间格式 MM月dd日
string time6 = string.Format("{0:M}",dt);
Console.WriteLine(time6);// 10月31日

// 时间格式 yyyy/MM/dd h:mm
string time7 = string.Format("{0:g}",dt);
Console.WriteLine(time7);// 2020/10/31 9:19

// 时间格式 yyyy/MM/dd h:mm:ss
string time8 = string.Format("{0:G}",dt);
Console.WriteLine(time8);// 2020/10/31 9:22:21

// 时间格式 mm:ss
string time9 = string.Format("{0:t}",dt);
Console.WriteLine(time9);// 9:25

// 时间格式 h:mm:ss
string time10 = string.Format("{0:T}",dt);
Console.WriteLine(time10);// 9:25:28

// 时间格式 yyyy-MM-dd h:mm:ss Z(中国)
string time11 = string.Format("{0:u}",dt);
Console.WriteLine(time11);// 2020-10-31 09:25:47Z

// 时间格式 yyyy年MM月dd日 h:mm:ss (通用)
string time12 = string.Format("{0:U}",dt);
Console.WriteLine(time12);// 2020年10月31日 1:26:01

string time13 = string.Format("{0:R}",dt);
Console.WriteLine(time13);// Sat, 31 Oct 2020 09:23:45 GMT

string time14 = string.Format("{0:s}",dt);
Console.WriteLine(time14);// 2020-10-31T09:24:21

string time15 = string.Format("{0}",dt);
Console.WriteLine(time15);// 2020/10/31 10:01:36

string time16 = string.Format("{0:yyyyMMddHHmmssffff}",dt); 
Console.WriteLine(time16);// 202010311002533500 

 La siguiente tabla enumera los modos que se pueden combinar para construir modos personalizados. Estos patrones distinguen entre mayúsculas y minúsculas; por ejemplo, se reconoce "MM" pero no se reconoce "mm" . Si el patrón personalizado contiene caracteres en blanco o entre comillas simples, la página de la cadena de salida también contendrá estos caracteres. Los caracteres que no están definidos como parte del patrón de formato o los caracteres de formato se copian en su significado original

Modo de formato Descripción
d día del mes Fecha de un dígito sin cero a la izquierda
dd día del mes Las fechas de un dígito tienen un cero a la izquierda
ddd Nombre abreviado del día de la semana Definido en AbbreviatedDayNames
dddd el nombre completo del día de la semana Definido en DayNames
Número de mes M Mes de un dígito sin cero a la izquierda
Número de mes MM El mes de un dígito tiene un cero a la izquierda
Nombre abreviado del mes MMM Definido en AbbreviatedMonthNames
MMMM nombre completo del mes Definido en MonthNames
y no incluye el año de la era Si el año sin era es menor que 10, se muestra el año sin cero a la izquierda
yy no incluye el año de la era Si el año sin la era es menor que 10, se muestra el año con ceros a la izquierda
aaaa Año de cuatro dígitos incluida la era
período o era gg Si la fecha que se va a formatear no tiene un período asociado o una cadena de época, el patrón se ignora
h hora en reloj de 12 horas Hora de un dígito sin cero a la izquierda
hh hora en reloj de 12 horas Horas de un dígito con ceros a la izquierda
H hora en reloj de 24 horas Hora de un dígito sin cero a la izquierda
HH Hora en formato de 24 horas Horas de un dígito con ceros a la izquierda
m minutos Minutos de un dígito sin cero a la izquierda
mm minutos Los minutos de un dígito tienen un cero a la izquierda
segundos Segundos de un dígito sin cero a la izquierda
segundos ss Los segundos de un dígito tienen un cero a la izquierda
La precisión decimal de f segundos es de un dígito El resto de los números están truncados.
La precisión decimal de ff segundos es de dos dígitos El resto de los números están truncados.
La precisión decimal de fff segundos es de tres dígitos El resto de los números están truncados.
La precisión decimal de ffff segundos es de cuatro dígitos El resto de los números están truncados.
La precisión decimal de fffff segundos es de cinco dígitos El resto de los números están truncados.
La precisión decimal de ffffff segundos es de seis dígitos El resto de los números están truncados.
La precisión decimal de fffffff segundos es de siete dígitos El resto de los números están truncados.
t El primer carácter del indicador AM / PM definido en AMDesignator o PMDesignator (si existe)
tt Indicador AM / PM definido en AMDesignator o PMDesignator (si lo hay)
z Desplazamiento de zona horaria ("+" o "-" seguido de horas solamente) Las horas de un dígito no tienen ceros a la izquierda. Por ejemplo, la hora estándar del Pacífico es "-8".
Desplazamiento de zona horaria zz ("+" o "-" seguido de horas solamente) Las horas de un dígito tienen ceros a la izquierda. Por ejemplo, la hora estándar del Pacífico es "-08".
compensación de zona horaria completa zzz ("+" o "-" seguido de horas y minutos) Las horas y los minutos de un dígito tienen ceros a la izquierda. Por ejemplo, la hora estándar del Pacífico es "-08: 00".
: El separador de tiempo predeterminado definido en TimeSeparator
/ El separador de fecha predeterminado definido en DateSeparator
% c donde c es el modo de formato (si se usa solo) Si el patrón de formato se combina con caracteres literales u otros patrones de formato, puede omitir el carácter "%"
c donde c es cualquier carácter Muestra los personajes como son. Para mostrar el carácter de barra invertida, use "\"

 Solo los patrones de formato enumerados en la segunda tabla anterior se pueden usar para crear patrones personalizados; los caracteres de formato estándar enumerados en la primera tabla no se pueden usar para crear patrones personalizados. La longitud del patrón personalizado es de al menos dos caracteres; por ejemplo,

DateTime.ToString("d")返回 DateTime 值;“d”是标准短日期模式。
DateTime.ToString("%d")返回月中的某天;“%d”是自定义模式。
DateTime.ToString("d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

  • 比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式

C#日期转化

DateTime dt = DateTime.Now;
 dt.ToString();// 2020-10-31 10:10:25
 dt.ToFileTime().ToString();// 132485838882683121
 dt.ToFileTimeUtc().ToString();// 132485839117600286
 dt.ToLocalTime().ToString();// 2020/10/31 10:12:08
 dt.ToLongDateString().ToString();// 2020年10月31日
 dt.ToLongTimeString().ToString();// 10:13:10
 dt.ToOADate().ToString();// 44135.4260169097
 dt.ToShortDateString().ToString();// 2020/10/31
 dt.ToShortTimeString().ToString();// 10:14
 dt.ToUniversalTime().ToString();// 2020/10/31 2:14:19

 dt.Year.ToString();// 2020
 dt.Date.ToString();// 2020/10/31 0:00:00
 dt.DayOfWeek.ToString();// Saturday
 dt.DayOfYear.ToString();// 305
 dt.Hour.ToString();// 10
 dt.Millisecond.ToString();// 53
 dt.Minute.ToString();// 16
 dt.Month.ToString();// 10
 dt.Second.ToString();// 10
 dt.Ticks.ToString();// 637397362366997334
 dt.TimeOfDay.ToString();// 10:17:34.1632189

 dt.ToString();// 2020/10/31 10:17:52
 dt.AddYears(1).ToString();// 2021/10/31 10:18:09
 dt.AddDays(1.1).ToString();// 2020/11/1 12:42:26
 dt.AddHours(1.1).ToString();// 2020/10/31 11:24:43
 dt.AddMilliseconds(1.1).ToString();// 2020/10/31 10:19:30
 dt.AddMonths(1).ToString();// 2020/11/30 10:19:49
 dt.AddSeconds(1.1).ToString();// 2020/10/31 10:20:07
 dt.AddMinutes(1.1).ToString();// 2020/10/31 10:21:31
 dt.AddTicks(1000).ToString();// 2020/10/31 10:20:45
 dt.CompareTo(dt).ToString();// 0
 dt.Add(?).ToString();// 问号为一个时间段

 dt.Equals("2020-10-31 16:11:04").ToString();//False
 dt.Equals(dt).ToString();// True
 dt.GetHashCode().ToString();// -283369369
 dt.GetType().ToString();// System.DateTime
 dt.GetTypeCode().ToString();// DateTime


 dt.GetDateTimeFormats('s')[0].ToString();// 2020-10-31T10:23:45
 dt.GetDateTimeFormats('t')[0].ToString();// 10:24
 dt.GetDateTimeFormats('y')[0].ToString();// 2020年10月
 dt.GetDateTimeFormats('D')[0].ToString();// 2020年10月31日
 dt.GetDateTimeFormats('D')[1].ToString();// 2020年10月31日, 星期六
 
 dt.GetDateTimeFormats('D')[2].ToString();// 星期六, 2020年10月31日
 dt.GetDateTimeFormats('D')[3].ToString();// 2020年10月31日
 dt.GetDateTimeFormats('M')[0].ToString();// 10月31日
 dt.GetDateTimeFormats('f')[0].ToString();// 2020年10月31日 10:25
 dt.GetDateTimeFormats('g')[0].ToString();// 2020/10/31 10:26
 
 dt.GetDateTimeFormats('r')[0].ToString();// Sat, 31 Oct 2020 10:26:27 GMT

比较两个时间的大小

using System;

namespace dateTime
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            string st1 = "12:13";
            string st2 = "14:14";
            TimeRatioSize(st1, st2);
        }
        
		 /// <summary>
        /// 比较两个时间的大小
        /// </summary>
        /// <param name="st1"></param>
        /// <param name="st2"></param>
        public static void TimeRatioSize(string st1, string st2)
        {
    
    
            string msg;

            DateTime dt1 = Convert.ToDateTime(st1);
            DateTime dt2 = Convert.ToDateTime(st2);

            DateTime dt3 = DateTime.Now;

            if (DateTime.Compare(dt1, dt2) > 0)
                msg = st1 + ">" + st2;
            else
                msg = st1 + "<" + st2;
            msg += "\r\n" + dt1.ToString();

            if (DateTime.Compare(dt1, dt3) > 0)

                msg += "\r\n" + st1 + ">" + dt3.ToString();
            else
                msg += "\r\n" + st1 + "<" + dt3.ToString();
            Console.WriteLine(msg);
        }
    }
}

在这里插入图片描述

计算时间差

public static void DateDiff(DateTime T1, DateTime T2)
{
    
    
    string dateDiff;
    
    TimeSpan ts1 = new TimeSpan(T1.Ticks);
    TimeSpan ts2 = new TimeSpan(T2.Ticks);
    TimeSpan ts = ts1.Subtract(ts2).Duration();
    
    dateDiff = string.Format("{0}天{1}小时{2}分钟{3}秒",
        ts.Days.ToString(), ts.Hours.ToString(), ts.Minutes.ToString(), ts.Seconds.ToString());

    Console.WriteLine(dateDiff);
}

Supongo que te gusta

Origin blog.csdn.net/qq_43562262/article/details/109339657
Recomendado
Clasificación