当前位置: 首页 > 知识库问答 >
问题:

如何返回日期或错误?C#.网

解飞语
2023-03-14

我试图从输入的日期返回格式为"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;
        }
    }
}

我希望你能帮助我!谢啦

共有1个答案

罗心思
2023-03-14

在本例中,您正在实现JsonConverter

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,所以不需要捕捉异常。

 类似资料:
  • 问题内容: 代码: 输出: 我正在尝试将字符串转换为NSDate数据类型,但没有获得正确的值。我尝试了许多解决方案,但未返回正确的值。我需要yyyy-MM- dd格式(2016-04-02)与我的输入“ 2016-04-02”相同。如果有人可以帮上忙,那真是太好了。提前致谢 问题答案: 从字符串转换为NSDate时,如果未将时区设置为格式化程序,则将获得本地时区中日期的NSDate。我想您的时区是

  • 问题内容: 所以我正在做一个基本的星期选择器,您可以在其中选择星期数和年份,并从星期开始点获取相应的日期。 基本测试方案 您可以看到,我将通缉年份设置为2015,将通缉周设置为15,但是得到的结果是:“ 2014-12-31 23:00:00 +0000” …那真的让我垂涎三尺。无论我选择哪个星期和一年,它总是会在12月关闭。 预先感谢您的帮助。 问题答案: 与以下产品配合使用: 更新 斯威夫特3

  • 问题内容: 以下脚本返回20而不是21! 我究竟做错了什么?这是JavaScript错误吗? 问题答案: 该方法依赖于实现(等效于)。 虽然此格式将在现代浏览器中可用,但您不能百分百确定浏览器将正确解释您所需的格式。 我建议您处理您的字符串,并将Date构造函数与年,月和日参数一起使用:

  • 我的java有点生锈,好久没用了 我想做的是让用户定义一个日期(3个整数包含年、月和日)并将其转换为日期对象。 我有一个方法如下,这就是我在谷歌搜索后得到的结果。 它被下面的人调用,现在刚刚被打印出来 问题是日期完全错误。我想要开始日期为2014-01-01,结束日期为2014-12-31,但打印出来的是 开始时间:8月7日星期六00:00:01 GMT 6 - 开始时间:8月7日星期六00:00

  • 我有以下应该返回时间戳的函数。当使用以下斜杠以字符串格式输入日期时,此代码有效:“2019/3/4”,但在使用 怎么回事?

  • null 但如果有例外,我该怎么办? null