我有以下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
我想完全删除时间片。最好的方法是什么?
答案 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