LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

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

freeflydom
2026年2月10日 16:28 本文热度 184

前言

在 .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,而是用空格分隔日期和时间。

​转自https://blog.csdn.net/lmy_520/article/details/150498328


该文章在 2026/2/10 16:28:52 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved