在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
在 C# 中,DateTime
物件是處理 .NET Framework 應用程式中的日期和時間的基礎。 他們提供強大的功能集,用於操作、格式化和比較日期和時間。
本文旨在提供 C# 中 DateTime
對象的全面概述,包括其創建、操作、格式化和常見用例。 在文章結尾,我們還將探討如何IronPDF從Iron Software可以在 C# 應用程式中即時生成 PDF 文件。
在 C# 中創建 DateTime
物件是很簡單的。 有多種建構函式可用於使用不同參數初始化 DateTime
物件:
// 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
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;
DateTime
物件DateTime
物件提供多種方法來操作日期和時間,例如新增或減去時間間隔、提取組件以及在時區之間進行轉換。
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();
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();
DateTime
對象DateTime
物件表示時間或日期,並可使用各種格式規範將其格式化為字串,以符合所需的格式。
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");
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");
DateTime
物件C# 提供標準比較運算符(<
, >
, <=
, >=
, ==
!=)可用來直接比較兩個
DateTime對象。 這些運算子比較
DateTime` 物件的基礎刻度,這些刻度表示自公曆0001年1月1日的00:00:00.000以來經過的100奈秒間隔數。
以下是一個展示比較運算符用法的例子:
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.");
}
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.");
}
DateTime.Compare
C# 方法除了比較運算符之外,DateTime
物件還提供用於比較這些物件之間相對值的方法。 這些方法在某些情況下提供了更多的靈活性和可讀性。 CompareTo()
方法比較底層的 DateTime
物件以確定結果。
假设这两个日期处于相同的时区值。 在比較物件之後,它返回一個整數值,表示大於、小於或等於。 相同日期值返回整數值 0。
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.");
}
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.");
}
DateTime
物件時的容忍誤差要比較 DateTime
物件,尤其是在處理涉及時間間隔的計算時,由於精度可能存在差異,因此考慮容忍度是很重要的。
這可以通過比較兩個DateTime
值之間的絕對差異與預定義的容差閾值來實現。
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.");
}
}
}
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.");
}
}
}
在 C# 中,DateTime
物件可以表示本地時間和協調世界時間 (UTC)。(協調世界時). 特別是當處理全球應用程式時,注意時區轉換是很重要的。
DateTime localTime = DateTime.Now;
DateTime utcTime = DateTime.UtcNow;
Console.WriteLine("Local Time: " + localTime);
Console.WriteLine("UTC Time: " + utcTime);
DateTime localTime = DateTime.Now;
DateTime utcTime = DateTime.UtcNow;
Console.WriteLine("Local Time: " + localTime);
Console.WriteLine("UTC Time: " + utcTime);
IronPDF 是 Iron Software 所提供的高效且易於使用的 PDF 生成庫。 我們可以使用 NuGet 套件管理器安裝它。
NuGet\Install-Package IronPdf -Version 2024.3.4
或從 Visual Studio 如下所示
現在讓我們深入探討 PDF 的生成,來展示一個 DateTime 物件。
class Program
{
static void Main()
{
Console.WriteLine("-----------Iron Software-------------");
var renderer = new ChromePdfRenderer(); // var pattern
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 only: {dateOnly:U}</p>";
Console.WriteLine($"Date only: {dateOnly: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}: {dateOnly:U}");
//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}: {dateOnly:U}");
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("outputDate.pdf"); // Saves PDF
}
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;
}
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;
}
public static bool CheckGreater(DateTime date1, DateTime date2)
{
return date1 > date2;
}
public static bool CheckLessor(DateTime date1, DateTime date2)
{
return date1 < date2;
}
}
class Program
{
static void Main()
{
Console.WriteLine("-----------Iron Software-------------");
var renderer = new ChromePdfRenderer(); // var pattern
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 only: {dateOnly:U}</p>";
Console.WriteLine($"Date only: {dateOnly: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}: {dateOnly:U}");
//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}: {dateOnly:U}");
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("outputDate.pdf"); // Saves PDF
}
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;
}
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;
}
public static bool CheckGreater(DateTime date1, DateTime date2)
{
return date1 > date2;
}
public static bool CheckLessor(DateTime date1, DateTime date2)
{
return date1 < date2;
}
}
以下輸出顯示使用 DateTime
對象生成的 PDF:
IronPDF. 請提供電子郵件地址以生成授權密鑰,該密鑰將發送到您提供的電子郵件。
"IronPDF.LicenseKey": "<Your Key>"
"IronPDF.LicenseKey": "<Your Key>"
將許可證金鑰放置在 AppSettings.Json 檔案中。
在 .NET 應用程式中,DateTime
物件在 C# 中提供了一個強大的方式來處理日期和時間。 他們提供廣泛的功能來創建、操作、格式化和比較日期和時間值。 理解如何有效使用 DateTime
對象對於構建可靠且精確的日期和時間功能在 C# 應用中至關重要。
通過利用 DateTime
對象的功能,開發人員可以確保他們的應用程式能夠正確處理日期和時間,無論其遇到的具體需求或情境如何。
無論是計算持續時間、排程任務,還是向用戶顯示日期和時間,DateTime
對象在許多與 C# 程式設計中的日期和時間管理相關的方面都起著關鍵作用。