« DateTime » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 2 : | Ligne 2 : | ||
= DateTime et String = | = DateTime et String = | ||
<kode lang=csharp> | <kode lang=csharp> | ||
var formattedDate = $"{DateTime.Now:yyyy-MM-dd}"; | |||
dateTime.ToString("o"); | dateTime.ToString("o"); | ||
DateTime dt = DateTime.ParseExact(dateTimeString, "o", DateTimeFormatInfo.CurrentInfo); | DateTime dt = DateTime.ParseExact(dateTimeString, "o", DateTimeFormatInfo.CurrentInfo); |
Version du 23 février 2020 à 10:26
DateTime et String
var formattedDate = $"{DateTime.Now:yyyy-MM-dd}"; dateTime.ToString("o"); DateTime dt = DateTime.ParseExact(dateTimeString, "o", DateTimeFormatInfo.CurrentInfo); // RoundtripKind permet de conserver la valeur de la propriété Kind lors de la convertion. Par défaut Kind est définit à Local. DateTime.Parse(stringToParse, null, DateTimeStyles.RoundtripKind); dateTimeOffset.ToString("dd MMM yyyy – HH:mm:ss:fffffff", CultureInfo.InvariantCulture); DateTimeOffset.ParseExact(stringToParse, "dd MMM yyyy - HH:mm:ss:fffffff zzz", CultureInfo.InvariantCulture); dateTimeOffset.ToString("o"); // équivalent à dateTimeOffset.ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz", CultureInfo.InvariantCulture); DateTimeOffset.Parse(stringToParse); |
Formats Standard
Nom | Code | Affichage |
---|---|---|
ShortDate | d | 3/9/2008 |
LongDate | D | Sunday, March 09, 2008 |
MonthDay | m | March 09 |
YearMonth | y | March, 2008 |
ShortTime | t | 4:05 PM |
LongTime | T | 4:05:07 PM |
ShortDate+ShortTime | g | 3/9/2008 4:05 PM |
ShortDate+LongTime | G | 3/9/2008 4:05:07 PM |
LongDate+ShortTime | f | Sunday, March 09, 2008 4:05 PM |
FullDateTime | F | Sunday, March 09, 2008 4:05:07 PM |
RFC1123 | r | Sun, 09 Mar 2008 16:05:07 GMT |
SortableDateTime | s | 2008-03-09T16:05:07 |
UniversalSortableDateTime | u | 2008-03-09 16:05:07Z |
o | 2008-03-09T16:05:07.1234567+01:00 |
Formats personnalisés
d | 1 | yyyy | 2015 | |
dd | 01 | HH | 23 | |
ddd | lun. | mm | 59 | |
dddd | lundi | ss | 59 | |
M | 1 | fff | 123 | |
MM | 01 | zzz | -07:00 | |
MMM | janv. | |||
MMMM | janvier |
DateTime et Culture
Si elle n'est pas spécifiée c'est la culture courante (CultureInfo.CurrentCulture) qui est utilisée.
Si l'on utilise un format prédéfinie le résultat peut varier en fonction de la culture:
var dt = new DateTime(1984, 1, 30); dt.ToString("d", new CultureInfo("fr-FR")); // 30/01/1984 dt.ToString("d", new CultureInfo("en-US")); // 1/30/1984 |
Par contre les formats personnalisés forcent le format et ne permettent pas de variations en fonction de la culture.
De plus il n'est pas possible de combiner un format standard à un format personnalisé.
L'utilisation de DateTimeFormatInfo permet de créer un format personnalisé en fonction de la culture.
var dateTimeFormatFr = DateTimeFormatInfo.GetInstance(new CultureInfo("fr-FR")); var dateTimeFormatUs = DateTimeFormatInfo.GetInstance(new CultureInfo("en-US")); var customFormatFr = dateTimeFormatFr.ShortDatePattern; // dd/MM/yyyy var customFormatUs = dateTimeFormatUs.ShortDatePattern; // M/d/yyyy |
Temps écoulé depuis 1970
var dt = DateTime.Now; long l = new DateTimeOffset(dt).ToUnixTimeMilliseconds(); |
Nécessite le Framework .NET 4.6 |
Exemples
var firstDayOfMonth = myDate.Date.AddDays(1 - myDate.Day); var firstDayOfMonth = new DateTime(myDate.Year, myDate.Month, 1); var lastDayOfMonth = myDate.AddDays(DateTime.DaysInMonth(myDate.Year, myDate.Month) - myDate.Date); var lastDayOfMonth = new DateTime(myDate.Year, myDate.Month, DateTime.DaysInMonth(myDate.Year, myDate.Month)); |