<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用Blazor做個簡單的時間戳在線轉(zhuǎn)換工具

          共 3459字,需瀏覽 7分鐘

           ·

          2022-03-03 23:01

          時間戳轉(zhuǎn)換

          時間戳轉(zhuǎn)換,關(guān)鍵點在于雙向綁定@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>

          <MarkdownComponent
          ????LocalPostFilePath="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]、網(wǎng)站留言[3]、微信公眾號(dotnet9)聯(lián)系等等。

          本工具源碼:TimestampTool[4]

          介紹文章:使用Blazor做個簡單的時間戳在線轉(zhuǎn)換工具[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]

          網(wǎng)站留言: https://dotnet9.com

          [4]

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

          [5]

          使用Blazor做個簡單的時間戳在線轉(zhuǎn)換工具: https://dotnet9.com/?p=1801

          [6]

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


          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰在线免费中文字幕 | 久操青青草 | 91豆花视频在线资源 | 麻豆精品视频 | 天天碰天天撸视频免费 |