You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server端天气应用如何将Unix UTC格式dt时间转为传统日期格式

解决方案

Blazor Server 基于 .NET 运行时,可直接使用 .NET 内置的时间处理工具完成 Unix 时间戳转换,无需引入第三方依赖,实现方法非常简单:

核心转换逻辑

你拿到的dt是10位秒级 Unix UTC 时间戳,直接调用DateTimeOffset.FromUnixTimeSeconds()方法即可完成转换,支持.NET Core 2.1及以上所有版本,完全兼容Blazor Server场景。

实现方式1:直接在Razor视图中转换

直接修改你现有代码中展示dt的单元格即可:

<tbody>
    @foreach (var w in forecast.daily)
    {
        <tr>
            <!-- 按需替换ToString内的格式符即可输出不同格式的日期 -->
            <td>@DateTimeOffset.FromUnixTimeSeconds(w.dt).ToLocalTime().ToString("MM/dd/yy")</td>
            <td>@w.temp?.min F°</td>
            <td>@w.temp?.max F°</td>
            <td>@w.temp?.day F°</td>
        </tr>
    }
</tbody>

实现方式2:封装为扩展方法复用(更推荐)

如果多处需要用到Unix时间转换,可以封装成C#扩展方法,减少重复代码:

  1. 新建静态扩展类:
public static class UnixTimeConvertExtensions
{
    /// <summary>
    /// 秒级Unix时间戳转本地时间
    /// </summary>
    public static DateTime ToLocalDateTime(this long unixTimeSeconds)
    {
        return DateTimeOffset.FromUnixTimeSeconds(unixTimeSeconds).LocalDateTime;
    }
}
  1. 在Razor视图中直接调用:
<!-- 输出 09/13/21 格式 -->
<td>@w.dt.ToLocalDateTime().ToString("MM/dd/yy")</td>

<!-- 输出 Friday, Sep 13 格式 -->
<td>@w.dt.ToLocalDateTime().ToString("dddd, MMM dd")</td>

常用日期格式符参考

  • MM/dd/yy:月/日/年短格式,例:09/13/21
  • dddd, MMM dd:星期+月份简写+日期,例:Friday, Sep 13
  • f:完整友好日期时间,例:Friday, September 13, 2021 12:00 PM
  • d:标准短日期,例:9/13/2021

如果你的dt字段是字符串类型,先调用long.Parse(w.dt)转换为长整型后再执行上述方法即可。


内容的提问来源于stack exchange,提问作者Adam Cushing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:15:03