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);
}