การแยกวันที่ออกจากสตริง

C#:
การแยกวันที่ออกจากสตริง

วิธีการ:

การแยกวิเคราะห์พื้นฐาน:

DateTime.Parse และ DateTime.TryParse เป็นตัวเลือกไปสำหรับการแปลงสตริงเป็น DateTime นี่คือตัวอย่างที่รวดเร็ว:

string dateString = "2023-04-12";
DateTime parsedDate;

if (DateTime.TryParse(dateString, out parsedDate))
{
    Console.WriteLine($"การแยกวิเคราะห์สำเร็จ: {parsedDate}");
}
else
{
    Console.WriteLine("การแยกวิเคราะห์ล้มเหลว");
}
// ผลลัพธ์: การแยกวิเคราะห์สำเร็จ: 4/12/2023 12:00:00 AM

ระบุวัฒนธรรม:

บางครั้งคุณต้องการแยกวิเคราะห์สตริงวันที่ที่อยู่ในรูปแบบวัฒนธรรมเฉพาะ คุณสามารถทำได้โดยใช้คลาส CultureInfo:

using System.Globalization;

string dateString = "12 avril 2023";
var cultureInfo = new CultureInfo("fr-FR");
DateTime parsedDate = DateTime.Parse(dateString, cultureInfo);

Console.WriteLine(parsedDate);
// ผลลัพธ์: 4/12/2023 12:00:00 AM

การแยกวิเคราะห์แบบเฉพาะด้วยรูปแบบที่เจาะจง:

สำหรับสถานการณ์ที่วันที่มาในรูปแบบที่อาจจะไม่เป็นมาตรฐาน, DateTime.ParseExact เป็นวิธีที่เหมาะสม:

string dateString = "Wednesday, 12 April 2023";
string format = "dddd, d MMMM yyyy";
DateTime parsedDate = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

Console.WriteLine(parsedDate);
// ผลลัพธ์: 4/12/2023 12:00:00 AM

การใช้ NodaTime:

สำหรับการแยกวิเคราะห์วันที่และเวลาที่แข็งแกร่งยิ่งขึ้น พิจารณาใช้ไลบรารีภายนอกยอดนิยมอย่าง NodaTime มันให้ความสามารถในการจัดการวันที่/เวลาที่กว้างขวางยิ่งขึ้น:

using NodaTime;
using NodaTime.Text;

var pattern = LocalDatePattern.CreateWithInvariantCulture("yyyy-MM-dd");
var parseResult = pattern.Parse("2023-04-12");

if (parseResult.Success)
{
    LocalDate localDate = parseResult.Value;
    Console.WriteLine(localDate); // 2023-04-12
}
else
{
    Console.WriteLine("การแยกวิเคราะห์ล้มเหลว");
}

NodaTime มีการสนับสนุนเวลาท้องถิ่น แนวคิดเรื่องระยะเวลาและช่วงเวลา และระบบปฏิทินที่แตกต่างกันมากมาย ทำให้เป็นตัวเลือกที่มีประสิทธิภาพสำหรับการจัดการวันที่และเวลาที่ซับซ้อนในแอปพลิเคชัน .NET