当前位置: 首页 > news >正文

【C#】.net framework 4.8非常久远的框架如何把日期格式/Date(1754548600000)/以及带T的2025-08-07T14:36:40时间格式转为统一的格式输出

🌹欢迎来到《小5讲堂》🌹
🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹
🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹

在这里插入图片描述

目录

  • 前言
  • 时间戳格式
    • 解释:
      • 如何转换这个时间戳:
      • 1. 在 C# 中转换:
      • 2. 在 JavaScript 中转换:
      • 3. 手动计算:
    • 如何避免这种格式:
  • 带T格式
    • 方法 1:使用 `ToString()` 自定义格式化
      • 输出示例
    • 方法 2:使用 `Newtonsoft.Json` 自定义序列化
      • 1. 定义自定义转换器
      • 2. 在序列化时应用
      • 输出示例
    • 方法 3:使用 `System.Text.Json`(.NET Core / .NET 5+)
      • 自定义 `DateTimeConverter`
      • 输出示例
    • 总结
  • 推荐文章

前言

现在技术更新迭代的速度是真快,还没完全了解完一个方向的技术框架,就出了新框架,关键是每个框架都是有不同的版本。
.net framework框架已经主键被.net core替代,新项目几乎不会再使用旧框架,现在甚至是core框架老版本都已经不再支持维护。
本篇文章就来回顾下老框架如何统一输出日期格式yyyy-MM-dd HH:mm:ss

在 .NET Framework 4.8 中,当你看到类似 /Date(1754548600000)/ 这样的时间表示时,这通常是 JSON 序列化后的 DateTime 格式,特别是使用了旧版的 JavaScriptSerializer 或早期的 JSON.NET 版本。

时间戳格式

解释:

  • /Date(1754548600000)/ 是一个基于 Unix 时间戳的表示法
  • 括号中的数字 1754548600000 是从 1970-01-01 00:00:00 UTC 开始的毫秒数

如何转换这个时间戳:

1. 在 C# 中转换:

long timestamp = 1754548600000;
DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(timestamp).ToLocalTime(); // 如果需要本地时间
Console.WriteLine(dateTime);

2. 在 JavaScript 中转换:

var timestamp = 1754548600000;
var date = new Date(timestamp);
console.log(date);

3. 手动计算:

这个特定的时间戳 1754548600000 对应的是:

  • UTC 时间:2025-08-08 01:36:40
  • 北京时间(UTC+8):2025-08-08 09:36:40

如何避免这种格式:

如果你希望返回更易读的日期格式,可以考虑:

  1. 使用 JSON.NET (Newtonsoft.Json)
JsonConvert.SerializeObject(yourObject, Formatting.Indented);
  1. 在 Web API 中配置 JSON 格式化
config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
  1. 使用 System.Text.Json (.NET Core 3.0+)
JsonSerializer.Serialize(yourObject, new JsonSerializerOptions {WriteIndented = true,PropertyNamingPolicy = JsonNamingPolicy.CamelCase
});

这种 /Date()/ 格式是早期 ASP.NET 的默认格式,现代应用通常会使用 ISO 8601 格式(如 “2025-08-08T01:36:40Z”)来代替。

带T格式

如果你希望去掉时间中间的 T,使格式变成 2025-08-07 14:36:40(空格分隔),可以使用以下方法:


方法 1:使用 ToString() 自定义格式化

在返回数据前,手动格式化 DateTime 字段:

var result = new 
{retCode,retMsg,pageIndex,pageSize,rowsTotal,data = data.Select(item => new {// 其他字段...DateField = item.DateField.ToString("yyyy-MM-dd HH:mm:ss") // 替换 T 为空格})
};
return Json(result, JsonRequestBehavior.AllowGet);

输出示例

{"DateField": "2025-08-07 14:36:40"
}

方法 2:使用 Newtonsoft.Json 自定义序列化

如果你使用 Newtonsoft.Json,可以自定义 IsoDateTimeConverter 来修改格式:

1. 定义自定义转换器

public class CustomDateTimeConverter : IsoDateTimeConverter
{public CustomDateTimeConverter(){DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; // 替换 T 为空格}
}

2. 在序列化时应用

var settings = new JsonSerializerSettings
{Converters = new List<JsonConverter> { new CustomDateTimeConverter() }
};
return Content(JsonConvert.SerializeObject(new {retCode,retMsg,pageIndex,pageSize,rowsTotal,data}, settings),"application/json"
);

输出示例

{"DateField": "2025-08-07 14:36:40"
}

方法 3:使用 System.Text.Json(.NET Core / .NET 5+)

如果使用 System.Text.Json,可以自定义 JsonSerializerOptions

var options = new JsonSerializerOptions
{Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,Converters = { new DateTimeConverter("yyyy-MM-dd HH:mm:ss") } // 自定义转换器
};
return Content(JsonSerializer.Serialize(new {retCode,retMsg,pageIndex,pageSize,rowsTotal,data}, options),"application/json"
);

自定义 DateTimeConverter

public class DateTimeConverter : JsonConverter<DateTime>
{private readonly string _format;public DateTimeConverter(string format) => _format = format;public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)=> DateTime.Parse(reader.GetString()!);public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)=> writer.WriteStringValue(value.ToString(_format));
}

输出示例

{"DateField": "2025-08-07 14:36:40"
}

总结

方法适用场景示例输出
ToString("yyyy-MM-dd HH:mm:ss")手动格式化2025-08-07 14:36:40
Newtonsoft.Json + IsoDateTimeConverter全局 JSON 配置2025-08-07 14:36:40
System.Text.Json + DateTimeConverter.NET Core / 5+2025-08-07 14:36:40

推荐方法:

  • 如果只是少量字段,直接 ToString("yyyy-MM-dd HH:mm:ss") 最简单。
  • 如果整个项目需要统一格式,使用 Newtonsoft.Json 自定义 DateTimeConverter
  • 如果是 .NET Core / .NET 5+,优先用 System.Text.Json

这样可以确保返回的 JSON 时间格式不带 T,而是用空格分隔日期和时间。

推荐文章

【C#】.net framework 4.8非常久远的框架如何把日期格式/Date(1754548600000)/以及带T的2025-08-07T14:36:40时间格式转为统一的格式输出

【C#】实体类定义的是long和值识别到的是Int64,实体类反射容易出现Object does not match target type

【C#】如果有一个数值如 168.0000100,如何去除末尾的无效零,只显示有效的小数位数,让DeepSeek给我们解答

【C#】Quartz.NET怎么动态调用方法,并且根据指定时间周期执行,动态配置类何方法以及Cron表达式,有请DeepSeek

【C#】.net core6.0无法访问到控制器方法,直接404。由于自己的不仔细,出现个低级错误,这让DeepSeek看出来了,是什么错误呢,来瞧瞧

【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

【C#】事务(进程 ID 64)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。不能在具有唯一索引“XXX_Index”的对象“dbo.Test”中插入重复键的行。

【C#】使用DeepSeek帮助评估数据库性能问题,C# 使用定时任务,每隔一分钟移除一次表,再重新创建表,和往新创建的表追加5万多条记录

【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理

【C#】已经实体类和动态实体类的反射使用方法,两分钟回顾,码上就懂

【C#】使用vue3的axios发起get和post请求.net framework部署的API显示跨域

【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据

【C#】pdf按页分割文件,以及分页合并,效果还不错,你值得拥有

【C#】未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块。

【C#】.net core 6.0 在program时间格式统一json格式化,并列举program默认写法和简化写法

【C#】.net core 6.0 ApiController,API控制器方法,API接口以实体类作为接收参数应该注意的点

【C#】 SortedDictionary,查找字典中是否存在给定的关键字

【C#】.net core 6.0 MVC返回JsonResult显示API接口返回值不可被JSON反序列化

【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇

http://www.dtcms.com/a/350192.html

相关文章:

  • 并发编程原理与实战(二十六)深入synchronized底层原理实现
  • 京东API分类接口实战指南:获取各类商品信息
  • Microsoft 365 中的 School Data Sync 功能深度解析:教育机构数字化管理的智能核心
  • Android音频学习(十五)——打开输出流
  • 如何用DeepSeek让Excel数据处理自动化:告别重复劳动的智能助手
  • 面试手写 Promise:链式 + 静态方法全实现
  • 扣子智能体商业化卡在哪?井云系统自动化交易+私域管理,闭环成交全流程拆解
  • 3491定期复盘代码实现设计模式的忌假应用
  • 使用Docker配置Redis Stack集群的步骤
  • React 19 与 Next.js:利用最新 React 功能
  • SQL性能调优
  • HTTP、HTTPS 与 WebSocket 详解
  • UDS诊断案例-新能源汽车电池管理系统(BMS)诊断
  • Git提交流程与最佳实践
  • debug kernel 的一些trace的方法
  • 嵌入式Linux内核编译与配置
  • GraphRAG
  • 掌握C++ std::invoke_result_t:类型安全的函数返回值提取利器
  • VSCode远程连接阿里云ECS服务器
  • ABB机器人焊接混合气节气阀
  • Chrome GPU 加速优化配置(前端 3D 可视化 / 数字孪生专用)
  • LangChain4J-(2)-高阶API与低阶API
  • 从人工巡检到AI预警:智慧工地如何用技术重构施工安全体系
  • Dubbo3.3 Idea Maven编译命令
  • 指纹手机技术支持体系:从核心技术到场景化落地保障
  • (四十六)深度解析领域特定语言(DSL)第八章——语法分析器组合子:案例实现(Part2)
  • Spring Boot 集成 Eclipse Mosquitto
  • 2025生成式引擎优化(GEO)技术研究报告:技术演进、行业应用与服务商能力选择指南
  • 【小增长电商技术分享】电商支付宝批量转账工具技术测评:架构特性、合规风险与选型方法论,支付宝官方|小增长|云方付|易推客省心返
  • 深度学习——神经网络简单实践(在乳腺癌数据集上的小型二分类示例)