|
|
Ligne 106 : |
Ligne 106 : |
| DateOnly date = DateOnly.FromDateTime(DateTime.Now); | | DateOnly date = DateOnly.FromDateTime(DateTime.Now); |
|
| |
|
| DateTime dateTime = date.ToDateTime(new TimeOnly()); | | DateTime dateTime = date.ToDateTime(TimeOnly.MinValue); |
| </kode> | | </kode> |
|
| |
|
Dernière version du 13 mars 2025 à 10:24
DateTime et String
|
var formattedDate = $"{DateTime.Now:yyyy-MM-dd}";
dateTime.ToString("o");
DateTime dt = DateTime.ParseExact(dateTimeString, "o", DateTimeFormatInfo.CurrentInfo);
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");
dateTimeOffset.ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz", CultureInfo.InvariantCulture);
DateTimeOffset.Parse(stringToParse);
|
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
|
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"));
dt.ToString("d", new CultureInfo("en-US"));
|
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;
var customFormatUs = dateTimeFormatUs.ShortDatePattern;
|
Timezone
|
var dt = new DateTime(2024, 7, 18, 0, 0, 0);
TimeZoneInfo.ConvertTimeToUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time"));
|
Timezone names
DateOnly
|
DateOnly date = DateOnly.FromDateTime(DateTime.Now);
DateTime dateTime = date.ToDateTime(TimeOnly.MinValue);
|
|
var dt = DateTime.Now;
long l = new DateTimeOffset(dt).ToUnixTimeMilliseconds();
|
 |
Nécessite le Framework .NET 4.6 |
|
var max = date1 > date2 ? date1 : date2;
var max = new[] { date1, date2, date3 }.Max();
public static T Max<T>(T first, T second) {
if (Comparer<T>.Default.Compare(first, second) > 0)
return first;
return second;
}
var max = Max(date1, date2);
|
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));
|