2011-02-11 3 views
2

나는 다음과 같은 F # 코드했다 "MD-YYYY" 을 "2011년 1월 1일": 그래서, 인수가 날짜 매개 변수에 대한System.DateTime 형식

let mutable argNum = 0 
let cmdArgs = System.Environment.GetCommandLineArgs() 

for arg in cmdArgs do 
    printfn "arg %d : %s" argNum arg 
    match argNum with 
    | 1 -> pmID  <- System.Int32.Parse arg 
    | 2 -> startDate <- System.DateTime.Parse arg 
    | 3 -> endDate <- System.DateTime.Parse arg 
    | _ ->() 
    argNum <- argNum + 1 

을 형태로 제공 날짜를 XML 직렬 변환기에 쓸 때 다음 형식이 표시됩니다.

1/1/2011 12:00:00 AM 

시간 조각을 완전히 제거하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

4

이 항목은 어떻게됩니까?

(DateTime.Parse arg).ToString("MM-dd-yyyy") 
+0

아주 아주 가깝습니다. 나는 이것을 얻고있다 : "02-01-2011"나는 어떻게 따옴표를 제거합니까 ?? – Ramy

3

은 기본적으로 DateTime 인스턴스가 직렬화에 대해 "dateTime에"datatype를 사용하여 직렬화된다. 형식을 주석으로 변경하여 "날짜"를 대신 사용할 수 있습니다. YYYY-MM-DD 형식으로 serialize합니다. 원하는 형식의 문자열을 직렬화하기 만하면이 형식을 사용할 수 없습니다.

당신은 다음과 같이 정의 직렬화 속성을 설정할 수 있습니다

전체 날짜 : [<XmlAttribute("start-date", DataType = "dateTime")>]

단지 날짜 부분 : [<XmlAttribute("start-date", DataType = "date")>]

예 :

[<Serializable>] 
type DateTest() = 
    let mutable startDate = DateTime.Now 
    [<XmlAttribute("start-date", DataType = "date")>] 
    member x.StartDate with get() = startDate and set v = startDate <- v 
+0

문제는, 나는 "start-date"속성을 직렬화하지 않는다. 이 인스턴스에서는 시작 날짜 속성이있는 매개 변수 요소를 직렬화하고 있지만 다른 인스턴스에서는 그렇지 않을 수도 있습니다. – Ramy