C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

本文介绍如何在WebAPI中设置JSON时间格式,通过配置全局时间格式化来统一返回的时间字符串格式,确保前后端数据交互的一致性。

问题描述
在这里插入图片描述

其实网上已经有很多说的了,都是再WebApiConfig添加关于时间的配置
在这里插入图片描述
下面是代码

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(  
    new Newtonsoft.Json.Converters.IsoDateTimeConverter()  
    {  
        DateTimeFormat = "yyyy-MM-dd hh:mm:ss"  
    }  
);  

或者

 //格式化json数据中的时间的T
            var jsontimeset = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
            jsontimeset.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;
            jsontimeset.DateFormatString = "yyyy-MM-dd HH:mm:ss";

上面的方法都行
但是他们就是没说最重要的,得引用这个配置才行啊

Json(new { total = total, rows = rows }, GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings);

看效果
在这里插入图片描述
另外,用的是postman

C# Web API 中,为了实现 RocketMQ 消息队列发送包 id、start_time 和 end_time 的通知消息,你需要遵循以下步骤: 1. **安装依赖库**: 首先,你需要安装RocketMQ.Net 库,可以使用 NuGet 包管理器安装:`Install-Package Rocketchat.RocketMQ` 2. **配置RocketMQ**: 在项目中配置 RocketMQ 的连接信息,通常会包地址、命名空间和访问密钥等。这可能涉及到一个 RocketMQ 客户端配置文件(例如通过 `IOptions<RocketMQConfig>` 注入): ```csharp public class RocketMQConfig { public string BrokerUri { get; set; } public string TopicName { get; set; } public string AccessKey { get; set; } // 其他配置项... } ``` 3. **创建消息模型**: 创建一个消息实体类,用于封装 id、start_time 和 end_time: ```csharp public class NotificationMessage { public Guid Id { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } // 可选:额外的数据字段 } ``` 4. **创建消息生产器**: 使用 RocketMQClient 或其提供的 API 创建一个消息生产者: ```csharp private readonly IProducer<NotificationMessage, string> _producer; public YourController(RocketMQConfig config) { var producerConfig = new ProducerConfig(config.BrokerUri); _producer = new DefaultMQProducer(config.TopicName, config.AccessKey) .SetProducerGroup("your_group") .Start(); } [HttpPost] public async Task<IActionResult> SendNotification(NotificationMessage message) { try { await _producer.Send(new Message<string>(message.Id.ToString(), message.ToJsonString())); return Ok(); } catch (Exception ex) { return BadRequest($"Failed to send notification: {ex.Message}"); } } ``` 5. **结束时间JSON 格式**: `ToJsonString()` 方法可以根据需求格式化成 JSON 字符串,以便于 RocketMQ 的消费。如果想要直接使用.NET的 JSON 库,可以使用 `Newtonsoft.Json` 或其他支持的库。 6. **事务管理和异常处理**: 如果有事务要求或者需要处理网络中断等问题,你可能需要添加相应的异常处理和回退机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值