F#中的System.DateTime格式

时间:2011-02-11 04:32:33

标签: datetime f#

我有以下f#代码:

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

对于日期参数,参数的格式为:“1-1-2011”,所以“M-D-YYYY” 当我将日期写入xml序列化程序时,我得到以下格式:

1/1/2011 12:00:00 AM

我想完全删除时间片。最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

这个怎么样?

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

答案 1 :(得分:3)

默认情况下DateTime实例使用“dateTime”datatype序列化以进行序列化。您可以通过注释您的类型来改变它,而不是使用“日期”,它将以YYYY-MM-DD格式对其进行序列化 - 如果这对您不起作用,只需序列化一个字符串,而不是保留您选择的格式。 / p>

您可以像这样设置自定义序列化属性:

完整日期时间:[<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