첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ TagHelper 클래스를 사용해 유닉스 시간을 현재 시간으로 변환하는 사용자 정의 태그 헬퍼를 만드는 방법을 보여준다.

TestProject.zip
다운로드

▶ TagHelpers/UnixTimeConverterTagHelper.cs

using Microsoft.AspNetCore.Razor.TagHelpers;
using System;
using System.Threading.Tasks;

namespace TestProject.TagHelpers
{
    /// <summary>
    /// 유닉스 시간 변환자 태그 헬퍼
    /// </summary>
    public class UnixTimeConverterTagHelper : TagHelper
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Property
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 포맷 문자열 - Format

        /// <summary>
        /// 포맷 문자열
        /// </summary>
        public string Format { get; set; } = "yyyy-MM-dd HH:mm:ss";

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 비동기 처리하기 - ProcessAsync(context, output)

        /// <summary>
        /// 비동기 처리하기
        /// </summary>
        /// <param name="context">컨텍스트</param>
        /// <param name="output">출력</param>
        /// <returns>태스크</returns>
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            string sourceContent = (await output.GetChildContentAsync()).GetContent();

            DateTime unixTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            DateTime currentTime = unixTime.AddSeconds(Convert.ToDouble(sourceContent));

            string targetContent = currentTime.ToString(Format);

            output.Content.SetContent(targetContent);
        }

        #endregion
    }
}

 

▶ Views/Test/Index.cshtml

@addTagHelper *, TestProject
@{ Layout = null; }
<p>TagHelper 클래스 : 유닉스 시간을 현재 시간으로 변환하는 사용자 정의 태그 헬퍼 만들기</p>
<hr />
<p><unix-time-converter>1462004724</unix-time-converter></p>
<p><unix-time-converter Format="HH:mm:ss">1462004724</unix-time-converter></p>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요