如何允许更多日期时间格式在 Bot 框架应用程序中获得 Datetime 属性 的验证

How to allow more datetime format to get validate for Datetime property in Bot framework App

据我所知,Bot Framework 仅验证几种日期格式,如何允许更多格式进行验证。我正在使用表单生成器。我想允许以下日期格式,如何实现。

string[] formats =  {
    "d/M/yyyy", "dd/MM/yyyy", "dd/MMM/yyyy", "dd/MMMM/yyyy", "dd/MMM/yy","dd/MMMM/yy","d/MMM/yyyy",
    "yyyy/M/d", "yyyy/MM/dd", "yyyy/MMM/dd", "yyyy/MMMM/dd",
    "MMM-dd-yyyy", "MMMM-dd-yyyy",
    "d-M-yyyy", "dd-MM-yyyy", "dd-MMM-yyyy", "dd-MMMM-yyyy", "dd-MMM-yy","dd-MMMM-yy","d-MMM-yyyy",
    "yyyy-M-d", "yyyy-MM-dd", "yyyy-MMM-dd", "yyyy-MMM-dd",
    "MMM.dd.yyyy", "MMMM.dd.yyyy",
    "d.M.yyyy", "dd.MM.yyyy", "dd.MMM.yyyy", "dd.MMMM.yyyy", "dd.MMM.yy","dd.MMMM.yy","d.MMM.yyyy",
    "yyyy.M.d", "yyyy.MM.dd", "yyyy.MMM.dd", "yyyy.MMMM.dd",
    "MMM,dd,yyyy", "MMMM,dd,yyyy",
    "d,M,yyyy", "dd,MM,yyyy", "dd,MMM,yyyy", "dd,MMMM,yyyy", "dd,MMM,yy","dd,MMMM,yy","d,MMM,yyyy",
    "yyyy,M,d", "yyyy,MM,dd", "yyyy,MMM,dd", "yyyy,MMMM,dd",
    "MMM dd yyyy", "MMMM dd yyyy",
    "d M yyyy", "dd MM yyyy", "dd MMM yyyy", "dd MMMM yyyy", "dd MMM yy","dd MMMM yy","d MMM yyyy",
    "yyyy M d", "yyyy MM dd", "yyyy MMM dd", "yyyy MMMM dd"
};

我可以想到 2 个解决方案。

第一个最难:您可以实现自己的 FieldReflector class 并使其能够解析您提到的所有数据格式。对于如此多的格式,这可能是最好的方法。

第二个更像是一种解决方法,但我以前用过这个。我在我的表单 class 中创建了一个名为 DateString 且类型为 String 的新变量,并将其替换为我原来的 Date 变量。然后在我创建的验证方法中完成将字符串解析为日期时间。这可能是完成此操作的最简单方法。