使用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做个简单的时间戳在线转换工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 11 预览,又增加了实用的语法糖
- 下一篇: .NET6之MiniAPI(十九):NL