
Datetime Objects in C# (Comment ça fonctionne pour les développeurs)
DateTime objets en C# sont fondamentaux pour travailler avec les dates et les heures dans les applications .NET Framework. Ils fournissent un ensemble de fonctionnalités robustes pour manipuler, formater et comparer les dates et les heures.
Cet article vise à fournir une vue d'ensemble complète des DateTime objets en C#, couvrant leur création, manipulation, formatage et cas d'utilisation courants. À la fin de l'article, nous explorerons également comment IronPDF de Iron Software peut générer un document PDF à la volée dans les applications C#.
Création d'Objets DateTime
Créer un objet DateTime en C# est simple. Il existe plusieurs constructeurs disponibles pour initialiser un objet DateTime avec différents paramètres :
// Current date and time
DateTime currentDateTime = DateTime.Now;
// Specific date and time
DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
// Date only
DateTime dateOnly = DateTime.Today;
// Date and time in UTC
DateTime utcDateTime = DateTime.UtcNow;' Current date and time
Dim currentDateTime As DateTime = DateTime.Now
' Specific date and time
Dim specificDateTime As New DateTime(2024, 3, 16, 10, 30, 0)
' Date only
Dim dateOnly As DateTime = DateTime.Today
' Date and time in UTC
Dim utcDateTime As DateTime = DateTime.UtcNowManipulating DateTime Objects
Les objets DateTime offrent diverses méthodes pour manipuler les dates et les heures, telles que l'ajout ou la soustraction d'intervalles de temps, l'extraction de composants et la conversion entre les fuseaux horaires.
DateTime now = DateTime.Now;
// Adding days
DateTime futureDate = now.AddDays(7);
// Subtracting hours
DateTime pastTime = now.AddHours(-3);
// Getting components
int year = now.Year;
int month = now.Month;
int day = now.Day;
int hour = now.Hour;
int minute = now.Minute;
int second = now.Second;
// Converting between time zones
DateTime utcTime = DateTime.UtcNow;
DateTime localTime = utcTime.ToLocalTime();Dim now As DateTime = DateTime.Now
' Adding days
Dim futureDate As DateTime = now.AddDays(7)
' Subtracting hours
Dim pastTime As DateTime = now.AddHours(-3)
' Getting components
Dim year As Integer = now.Year
Dim month As Integer = now.Month
Dim day As Integer = now.Day
Dim hour As Integer = now.Hour
Dim minute As Integer = now.Minute
Dim second As Integer = now.Second
' Converting between time zones
Dim utcTime As DateTime = DateTime.UtcNow
Dim localTime As DateTime = utcTime.ToLocalTime()Formatage des objets DateTime
Les objets DateTime peuvent être formatés en chaînes en utilisant divers spécificateurs de format pour les représenter dans le format requis.
DateTime dateTime = DateTime.Now;
// Standard date and time format
string standardFormat = dateTime.ToString("G");
// Custom format
string customFormat = dateTime.ToString("dd/MM/yyyy HH:mm:ss");
// Format for sorting
string sortableFormat = dateTime.ToString("yyyy-MM-ddTHH:mm:ss");Imports System
Dim dateTime As DateTime = DateTime.Now
' Standard date and time format
Dim standardFormat As String = dateTime.ToString("G")
' Custom format
Dim customFormat As String = dateTime.ToString("dd/MM/yyyy HH:mm:ss")
' Format for sorting
Dim sortableFormat As String = dateTime.ToString("yyyy-MM-ddTHH:mm:ss")Comparaison des objets DateTime
C# fournit des opérateurs de comparaison standard (<, >, <=, >=, ==, !=) qui peuvent être utilisés pour comparer directement deux objets DateTime. Ces opérateurs comparent les ticks sous-jacents des objets DateTime, qui représentent le nombre d'intervalles de 100 nanosecondes écoulés depuis le 1er janvier de l'an 0001 à 00:00:00.000 dans le calendrier grégorien.
Voici un exemple démontrant l'utilisation des opérateurs de comparaison :
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
if (date1 < date2)
{
Console.WriteLine("date1 is earlier than date2.");
}
else if (date1 > date2)
{
Console.WriteLine("date1 is later than date2.");
}
else
{
Console.WriteLine("date1 is equal to date2.");
}Dim date1 As DateTime = DateTime.Now
Dim date2 As DateTime = DateTime.Now.AddDays(1)
If date1 < date2 Then
Console.WriteLine("date1 is earlier than date2.")
ElseIf date1 > date2 Then
Console.WriteLine("date1 is later than date2.")
Else
Console.WriteLine("date1 is equal to date2.")
End IfUtilisation de la méthode DateTime.Compare en C#
En plus des opérateurs de comparaison, les objets DateTime fournissent également des méthodes pour comparer les valeurs relatives entre ces objets. Ces méthodes offrent plus de flexibilité et de lisibilité dans certains scénarios. La méthode CompareTo() compare deux objets DateTime et renvoie une valeur entière indiquant si l'un est plus tôt, plus tard ou le même que l'autre.
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
int result = date1.CompareTo(date2);
if (result < 0)
{
Console.WriteLine("date1 is earlier than date2.");
}
else if (result > 0)
{
Console.WriteLine("date1 is later than date2.");
}
else
{
Console.WriteLine("date1 is equal to date2.");
}Dim date1 As DateTime = DateTime.Now
Dim date2 As DateTime = DateTime.Now.AddDays(1)
Dim result As Integer = date1.CompareTo(date2)
If result < 0 Then
Console.WriteLine("date1 is earlier than date2.")
ElseIf result > 0 Then
Console.WriteLine("date1 is later than date2.")
Else
Console.WriteLine("date1 is equal to date2.")
End IfComparaison des objets DateTime avec tolérance
Pour comparer des objets DateTime, notamment lors de calculs impliquant des intervalles de temps, il est important de considérer un niveau de tolérance en raison des éventuelles différences de précision.
Cela peut être réalisé en comparant la différence absolue entre deux valeurs DateTime par rapport à un seuil de tolérance prédéfini.
class Program
{
public static void Main()
{
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddMilliseconds(10);
TimeSpan tolerance = TimeSpan.FromMilliseconds(5);
bool isEqual = Math.Abs((date1 - date2).TotalMilliseconds) <= tolerance.TotalMilliseconds;
if (isEqual)
{
Console.WriteLine("date1 is considered equal to date2 within the tolerance.");
}
else
{
Console.WriteLine("date1 is not equal to date2 within the tolerance.");
}
}
}Friend Class Program
Public Shared Sub Main()
Dim date1 As DateTime = DateTime.Now
Dim date2 As DateTime = DateTime.Now.AddMilliseconds(10)
Dim tolerance As TimeSpan = TimeSpan.FromMilliseconds(5)
Dim isEqual As Boolean = Math.Abs((date1.Subtract(date2)).TotalMilliseconds) <= tolerance.TotalMilliseconds
If isEqual Then
Console.WriteLine("date1 is considered equal to date2 within the tolerance.")
Else
Console.WriteLine("date1 is not equal to date2 within the tolerance.")
End If
End Sub
End ClassGestion des Fuseaux Horaires et de l'Heure d'Été
Les objets DateTime en C# peuvent représenter à la fois l'heure locale et l'heure universelle coordonnée (UTC). Il est important d'être conscient des conversions de fuseaux horaires, notamment dans le cadre d'applications mondiales.
DateTime localTime = DateTime.Now;
DateTime utcTime = DateTime.UtcNow;
Console.WriteLine("Local Time: " + localTime);
Console.WriteLine("UTC Time: " + utcTime);Dim localTime As DateTime = DateTime.Now
Dim utcTime As DateTime = DateTime.UtcNow
Console.WriteLine("Local Time: " & localTime)
Console.WriteLine("UTC Time: " & utcTime)IronPDF to Generate PDF documents in C#
IronPDF de Iron Software est une bibliothèque de génération de PDF efficace et facile à utiliser. Vous pouvez l'installer à l'aide du Package Manager NuGet :

Ou depuis Visual Studio comme montré ci-dessous :

Plongeons maintenant dans la génération de PDF pour démontrer un objet DateTime.
using IronPdf;
class Program
{
static void Main()
{
Console.WriteLine("-----------Iron Software-------------");
// Create a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// HTML content for the PDF
var content = "<h1> Iron Software is Awesome </h1> Made with IronPDF!";
content += "<h2>Demo Datetime Objects in C#</h2>";
// Current date and time
content += "<h3>Current date and time</h3>";
DateTime currentDateTime = DateTime.Now;
content += $"<p>Current date and time: {currentDateTime:U}</p>";
Console.WriteLine($"Current date and time: {currentDateTime:U}");
// Specific date and time
content += "<h3>Specific date and time</h3>";
DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
content += $"<p>Specific date and time: {specificDateTime:U}</p>";
Console.WriteLine($"Specific date and time: {specificDateTime:U}");
// Date only
content += "<h3>Date Only</h3>";
DateTime dateOnly = DateTime.Today;
content += $"<p>Date only: {dateOnly:U}</p>";
Console.WriteLine($"Date only: {dateOnly:U}");
// Date and time in UTC
content += "<h3>Date and time in UTC</h3>";
DateTime utcDateTime = DateTime.UtcNow;
content += $"<p>Date and time in UTC: {utcDateTime:U}</p>";
Console.WriteLine($"Date and time in UTC: {utcDateTime:U}");
// Compare dates with Operators
content += "<h3>Compare dates with Operators</h3>";
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDates(date1, date2)}</p>";
Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {CompareDates(date1, date2)}");
// Compare dates with Compare Method
content += "<h3>Compare dates with Compare Method</h3>";
content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDatesWithCompare(date1, date2)}</p>";
Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {CompareDatesWithCompare(date1, date2)}");
// Render the content to PDF
var pdf = renderer.RenderHtmlAsPdf(content);
// Save the PDF to the output file
pdf.SaveAs("outputDate.pdf");
}
// Compare two dates using CompareTo method
public static string CompareDatesWithCompare(DateTime date1, DateTime date2)
{
int result = date1.CompareTo(date2);
string resultString;
if (result < 0)
{
resultString = "date1 is earlier than date2.";
Console.WriteLine(resultString);
}
else if (result > 0)
{
resultString = "date1 is later than date2.";
Console.WriteLine(resultString);
}
else
{
resultString = "date1 is equal to date2.";
Console.WriteLine(resultString);
}
return resultString;
}
// Compare two dates using basic comparison operators
public static string CompareDates(DateTime date1, DateTime date2)
{
string result;
if (CheckLessor(date1, date2))
{
result = "date1 is earlier than date2.";
Console.WriteLine(result);
}
else if (CheckGreater(date1, date2))
{
result = "date1 is later than date2.";
Console.WriteLine(result);
}
else
{
result = "date1 is equal to date2.";
Console.WriteLine(result);
}
return result;
}
// Helper method to check if the first date is greater than the second date
public static bool CheckGreater(DateTime date1, DateTime date2)
{
return date1 > date2;
}
// Helper method to check if the first date is less than the second date
public static bool CheckLessor(DateTime date1, DateTime date2)
{
return date1 < date2;
}
}Imports IronPdf
Class Program
Shared Sub Main()
Console.WriteLine("-----------Iron Software-------------")
' Create a new instance of ChromePdfRenderer
Dim renderer = New ChromePdfRenderer()
' HTML content for the PDF
Dim content = "<h1> Iron Software is Awesome </h1> Made with IronPDF!"
content += "<h2>Demo Datetime Objects in C#</h2>"
' Current date and time
content += "<h3>Current date and time</h3>"
Dim currentDateTime As DateTime = DateTime.Now
content += $"<p>Current date and time: {currentDateTime:U}</p>"
Console.WriteLine($"Current date and time: {currentDateTime:U}")
' Specific date and time
content += "<h3>Specific date and time</h3>"
Dim specificDateTime As New DateTime(2024, 3, 16, 10, 30, 0)
content += $"<p>Specific date and time: {specificDateTime:U}</p>"
Console.WriteLine($"Specific date and time: {specificDateTime:U}")
' Date only
content += "<h3>Date Only</h3>"
Dim dateOnly As DateTime = DateTime.Today
content += $"<p>Date only: {dateOnly:U}</p>"
Console.WriteLine($"Date only: {dateOnly:U}")
' Date and time in UTC
content += "<h3>Date and time in UTC</h3>"
Dim utcDateTime As DateTime = DateTime.UtcNow
content += $"<p>Date and time in UTC: {utcDateTime:U}</p>"
Console.WriteLine($"Date and time in UTC: {utcDateTime:U}")
' Compare dates with Operators
content += "<h3>Compare dates with Operators</h3>"
Dim date1 As DateTime = DateTime.Now
Dim date2 As DateTime = DateTime.Now.AddDays(1)
content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDates(date1, date2)}</p>"
Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {CompareDates(date1, date2)}")
' Compare dates with Compare Method
content += "<h3>Compare dates with Compare Method</h3>"
content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDatesWithCompare(date1, date2)}</p>"
Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {CompareDatesWithCompare(date1, date2)}")
' Render the content to PDF
Dim pdf = renderer.RenderHtmlAsPdf(content)
' Save the PDF to the output file
pdf.SaveAs("outputDate.pdf")
End Sub
' Compare two dates using CompareTo method
Public Shared Function CompareDatesWithCompare(date1 As DateTime, date2 As DateTime) As String
Dim result As Integer = date1.CompareTo(date2)
Dim resultString As String
If result < 0 Then
resultString = "date1 is earlier than date2."
Console.WriteLine(resultString)
ElseIf result > 0 Then
resultString = "date1 is later than date2."
Console.WriteLine(resultString)
Else
resultString = "date1 is equal to date2."
Console.WriteLine(resultString)
End If
Return resultString
End Function
' Compare two dates using basic comparison operators
Public Shared Function CompareDates(date1 As DateTime, date2 As DateTime) As String
Dim result As String
If CheckLessor(date1, date2) Then
result = "date1 is earlier than date2."
Console.WriteLine(result)
ElseIf CheckGreater(date1, date2) Then
result = "date1 is later than date2."
Console.WriteLine(result)
Else
result = "date1 is equal to date2."
Console.WriteLine(result)
End If
Return result
End Function
' Helper method to check if the first date is greater than the second date
Public Shared Function CheckGreater(date1 As DateTime, date2 As DateTime) As Boolean
Return date1 > date2
End Function
' Helper method to check if the first date is less than the second date
Public Shared Function CheckLessor(date1 As DateTime, date2 As DateTime) As Boolean
Return date1 < date2
End Function
End ClassLa sortie suivante montre le PDF généré avec les objets DateTime :
DateTime Objets en C# (Comment ça fonctionne pour les développeurs) : Figure 3
Licence d'Essai IronPDF
IronPDF nécessite une licence d'essai pour une fonctionnalité complète. Fournissez un ID d'Email pour générer une clé de licence qui sera envoyée à votre adresse email.
"IronPdf.LicenseKey": "<Your Key>"
Placez la clé de licence dans le fichier AppSettings.json.
Conclusion
Les objets DateTime en C# offrent un moyen puissant de travailler avec les dates et les heures dans les applications .NET. Ils offrent une large gamme de fonctionnalités pour créer, manipuler, formater et comparer des valeurs de date et d'heure. Comprendre comment utiliser efficacement les objets DateTime est essentiel pour construire des fonctionnalités fiables et précises de gestion des dates et heures dans les applications C#.
En tirant parti des capacités des objets DateTime, les développeurs peuvent s'assurer que leurs applications gèrent correctement les dates et heures, quels que soient les exigences ou scénarios spécifiques auxquels ils sont confrontés.
Qu'il s'agisse de calculer des durées, de planifier des tâches ou d'afficher des dates et des heures aux utilisateurs, les objets DateTime jouent un rôle crucial dans de nombreux aspects de la programmation C# liés à la gestion des dates et heures.

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.
Articles connexes


