我試圖從輸入的日期回傳格式為“dd / MM / yyyy”的日期。如果輸入的日期格式如下:“dd-mm-yyyy”,我想回傳一個錯誤:“輸入的日期格式無效。” 我分享我的代碼:
public class DateTimeConverterUsingDateTimeParse : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
return DateTime.ParseExact(reader.GetString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
}
}
我嘗試執行以下操作,但這是不正確的,因為我必須回傳一個 DateTime 變數:
public class DateTimeConverterUsingDateTimeParse : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
try
{
return DateTime.ParseExact(reader.GetString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
}
catch (Exception ex)
{
var error = "Date format error";
return error;
}
}
}
我希望你能幫幫我!謝謝
uj5u.com熱心網友回復:
在這種情況下,您正在實作JsonConverter<T>,這意味著實作應該符合類的預期行為,JsonException當輸入值無法轉換時拋出。
public class DateTimeConverterUsingDateTimeParse : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
if (DateTime.TryParseExact(reader.GetString(), "dd/MM/yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out var result)
{
return result;
}
else throw new JsonException();
}
}
我使用TryParseExact所以不需要捕獲例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/380047.html
