2017-12-30 13 views
0

현재이 코드를 C#으로 이식하고이 (단순화 된) 코드를 발견했습니다. 주어진 문자열 171228175744.085을 주어진 형식 060102150405으로 변환한다는 것을 알고 있습니다.Go.Parse 함수에 대한 이해

공식 문서 단지 내가이 2017-12-28 17:57:44.085 +0000 UTC을 beeing는 시간을 초래할 것이라는 점을 알고

(? 가능한 타임 스탬프)의 예는 없다 형식, 2017-Feb-1 같은 일반적인 형식을 사용하여 가지고,하지만 난 어떻게 단서가없는 왜냐하면 문자열 171228175744.085과 레이아웃이 나타내는 정보가 없기 때문입니다. 이 정보 중 일부는 GPS 관련 정보입니다. 그래서, 내 질문은 : 누군가가 C#에서 이렇게하는 방법을 알고 있습니까?

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    t, err := time.Parse("060102150405", "171228175744.085") 
    if err == nil{ 
     fmt.Println(t) 
    } 

} 

답변

3

time.Format은 형식의 의미를 설명합니다.

인용 :

Format returns a textual representation of the time value formatted 
according to layout, which defines the format by showing how the 
reference time, defined to be 

Mon Jan 2 15:04:05 -0700 MST 2006 

귀하의 예제에서 형식 문자열을 : 060102150405는 다음을 찾기 위해 시간 파서를 알려줍니다 :

  • 06 : 년
  • 01 : 달
  • 02 : 오늘의 일
  • 15시 :
  • :
  • 05분
  • : 두 번째

이 그것을 각 숫자를 해석하는 방법을 파서를 이야기하는 편리한 방법입니다. 신중하게 보면 숫자가 다시 사용되지 않는다는 것을 알 수 있습니다. 따라서 06이라고 말하면 파서는 2006과 일치합니다.

C#에서는 datetime.ParseExact을 사용할 수 있습니다. 의 라인을 따라 뭔가 :

DateTime.ParseExact(dateString, "yyMMddhhmmss", some_provider); 

:

+0

이 매우 빠른 응답 해 주셔서 감사합니다 (참고. 나는 # 위의 스 니펫 C를 시도하지 않은 당신은 그것을 조정해야 할 수 있습니다)! – NoRelect