首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Blazor服务器端天气应用程序将Unix、UTC格式的数据接收时间(dt)从API调用转换为传统日期格式

使用Blazor服务器端天气应用程序将Unix、UTC格式的数据接收时间(dt)从API调用转换为传统日期格式
EN

Stack Overflow用户
提问于 2021-09-13 15:42:24
回答 1查看 65关注 0票数 0

很抱歉,如果这个问题在其他地方得到了充分的回答,我似乎无法从许多关于unix转换的现有帖子中拼凑出解决方案。我构建了一个粗糙的Blazor服务器端天气预报应用程序,它调用天气预报API并返回七天的天气预报,其中每一天都由unix,utc格式的日期(例如:{“dt”:1631293200})来区分。我已经成功地显示了调用的结果,如下所示:

代码语言:javascript
复制
 <tbody>
            @foreach (var w in forecast.daily)
            {
                <tr>
                    <td>@w.dt</td>
                    <td>@w.temp?.min F°</td>
                    <td>@w.temp?.max F°</td>
                    <td>@w.temp?.day F°</td>
                </tr>
            }
        </tbody>

有没有一种简单的方法可以在Blazor服务器端应用程序中使用C#将"dt“结果转换为更容易识别的日期,比如”星期五,9月13日“或"09/13/21”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-13 16:00:32

这是如何将unix utc转换为本地时间。

您可以进行相应的修改。

unix时间戳是从纪元开始经过的秒数。

代码语言:javascript
复制
public static class TimeUtils
{
        public static DateTime UnixTimeStampToDateTime(double unixTimeStamp )
        {
            // The unix timestamp is how many seconds since the epoch time
            // so just substract
            var epochDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
            epochDateTime = epochDateTime .AddSeconds( unixTimeStamp ).ToLocalTime();
            return dateTime;
        }
}

然后,您可以将该DateTime转换为所需的任何字符串格式

例如

代码语言:javascript
复制
myDateTime.ToLongDateString()

例如,如果你在一个名为TimeUtils的静态类中有这个方法,并假设w.dt是一个double:

代码语言:javascript
复制
        <tbody>
            @foreach (var w in forecast.daily)
            {
                <tr>
                    <td>@(TimeUtils.UnixTimeStampToDateTime(w.dt).ToLongDateString())</td>
                    <td>@w.temp?.min F°</td>
                    <td>@w.temp?.max F°</td>
                    <td>@w.temp?.day F°</td>
                </tr>
            }
        </tbody>

正如@Alexander Petrov所指出的,还有另一种方法使用

代码语言:javascript
复制
DateTimeOffset.FromUnixTimeSeconds

它返回一个DateTimeOffset对象。这也可以是另一种选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69165575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档