欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

使用Blazor做个简单的时间戳在线转换工具

发布时间:2023/12/4 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用Blazor做个简单的时间戳在线转换工具 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

时间戳转换

时间戳转换,关键点在于双向绑定@bind-Value,就简单贴源码吧

TimestampTool.razor

@page "/timestamp" @using BlazorComponent.I18n @layout PublicLayout<PageTitle>@T("TimestampToolTitle")</PageTitle><h2 style="margin-bottom: 10px; margin-top: 10px; text-align: center;">@T("TimestampToolDesc")</h2><MRow>@T("TimestampToolDateNow") @DateToTimestamp(DateTime.Now, TimestampKind.Seconds) </MRow> <MRow><MTextField Label="@T("TimestampToolTimestamp")" TValue="long" @bind-Value="@_timestamp1"/><MSelect @bind-Value="@_kindValue1"Label="@T("TimestampToolTimestampKind")"Items="@_items"ItemText="u => u.Label"ItemValue="u => u.Value"Class="mx-3"MenuProps="props => props.OffsetY = true"></MSelect><MButton OnClick="@Convert1">@T("TimestampToolConvert")</MButton><MTextField Label="@T("TimestampToolBeijingTime")"TValue="string" @bind-Value="@_datetime1"Class="ml-3"/> </MRow> <MRow><MTextField Label="@T("TimestampToolBeijingTime")" TValue="string" @bind-Value="@_datetime2"/><MButton Class="mx-3" OnClick="@Convert2">@T("TimestampToolConvert")</MButton><MTextField Label="@T("TimestampToolTimestamp")" TValue="long" @bind-Value="@_timestamp2"/><MSelect @bind-Value="@_kindValue2"Label="@T("TimestampToolTimestampKind")"Items="@_items"ItemText="u => u.Label"ItemValue="u => u.Value"MenuProps="props => props.OffsetY = true"Class="ml-3"></MSelect> </MRow><MarkdownComponentLocalPostFilePath="wwwroot/2022/02/2022-02-27_03.md"SourceCodeUrl="https://github.com/dotnet9/dotnet9.com/blob/develop/src/Dotnet9.Tools.Web/Pages/Public/TimeTools/TimestampTool.razor"/>@code {[Inject]private I18n I18N { get; set; } = default!;private DateTime _currentDatetime;private long _timestamp1;private long _timestamp2;private string? _datetime1;private string? _datetime2;private TimestampKind _kindValue1;private TimestampKind _kindValue2;private readonly List<TimestampItem> _items = new();protected override Task OnInitializedAsync(){_items.Add(new TimestampItem(T("TimestampToolKindSeconds")!, TimestampKind.Seconds));_items.Add(new TimestampItem(T("TimestampToolKindMilliseconds")!, TimestampKind.Milliseconds));_currentDatetime = DateTime.Now;_timestamp1 = _timestamp2 = DateToTimestamp(_currentDatetime, TimestampKind.Seconds);_datetime1 = _datetime2 = _currentDatetime.ToString("yyyy-MM-dd HH:mm:ss");return base.OnInitializedAsync();}private void Convert1(){_datetime1 = TimestampToDate(_timestamp1, _kindValue1).ToString(_kindValue1 == TimestampKind.Seconds ? "yyyy-MM-dd HH:mm:ss" : "yyyy-MM-dd HH:mm:ss.fff");}private void Convert2(){try{_timestamp2 = DateToTimestamp(DateTime.Parse(_datetime2), _kindValue2);}catch{}}private static long DateToTimestamp(DateTime date, TimestampKind kind){try{var point = new DateTime(1970, 1, 1);var time = date.Subtract(point);return (long)(kind == TimestampKind.Seconds ? time.TotalSeconds : time.TotalMilliseconds);}catch{return default;}}private static DateTime TimestampToDate(long timestamp, TimestampKind kind){try{var point = new DateTime(1970, 1, 1);var time = kind == TimestampKind.Seconds ? point.AddSeconds(timestamp) : point.AddMilliseconds(timestamp);return time;}catch{return default;}}public string? T(string key){return I18N.LanguageMap.GetValueOrDefault(key);}enum TimestampKind{Seconds,Milliseconds}class TimestampItem{public string Label { get; }public TimestampKind Value { get; }public TimestampItem(string label, TimestampKind value){Label = label;Value = value;}} }

Dotnet9工具箱会不断添加新的免费、开源、在线工具,欢迎star支持,有什么需求我会考虑加上,仓库地址:Dotnet9.Tools[1],可提交issue[2]、网站留言[3]、微信公众号(dotnet9)联系等等。

本工具源码:TimestampTool[4]

介绍文章:使用Blazor做个简单的时间戳在线转换工具[5]

在线演示地址:https://tool.dotnet9.com/timestamp[6]

参考资料

[1]

Dotnet9.Tools: https://github.com/dotnet9/dotnet9.com

[2]

提交issue: https://github.com/dotnet9/dotnet9.com/issues/new

[3]

网站留言: https://dotnet9.com

[4]

TimestampTool: https://github.com/dotnet9/dotnet9.com/blob/develop/src/Dotnet9.Tools.Web/Pages/Public/TimeTools/TimestampTool.razor

[5]

使用Blazor做个简单的时间戳在线转换工具: https://dotnet9.com/?p=1801

[6]

https://tool.dotnet9.com/timestamp: https://tool.dotnet9.com/timestamp

总结

以上是生活随笔为你收集整理的使用Blazor做个简单的时间戳在线转换工具的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。