简短的问题。我正试图将字符串转换为日期(稍后将其放入INSERT命令)。我的问题是,我正在读取的字符串总是不同的(没有规则,它将是什么格式-因为这是用户依赖的)。
我在stackoverflow上发现了这样一段代码:
DateTime myDate =
DateTime.ParseExact("2009-05-08 14:40:52,531",
"yyyy-MM-dd HH:mm:ss,fff",
System.Globalization.CultureInfo.InvariantCulture)
,但在我的情况下,它将不起作用,因为我不知道我要导入什么样的格式。是否有通用的导入函数检查所有已知的格式?如果现在我该怎么写呢?(请给我一些提示)。
谢谢你的提示和提示,皮特
如果您不(或不能)在用户输入日期时验证日期(以确保它是一个有效日期),那么您就完蛋了。
考虑到当地人,1/2/2011可能是2月1日(爱尔兰,英国&欧洲),或者1月2日(美国)。
即使忽略当地人,它也会变得很复杂,有些人输入"星期四13/10/11",13号是星期四,如果他们错了,输入"星期五13/10/11",或者他们只是输入星期五10/11,是今天(2011年10月14日星期五)还是2011年11月的某个星期五。
然后你得到直观的用户输入"下周四",理论上你也可以处理,不是吗?
然后你会看到错字,112//2011,是11/2/2011,还是1/12/2011?
这里有太多的错误,尽你所能来确保用户输入是有效的,如果你必须移动天地,但要在用户输入数据的地方。
不,这是不可能的,但是您可以在数组中定义可能的formats
并将其传递给ParseExact
或TryParseExact
方法。
Dim format() As String = {"dd-MM-yy", "dd/MM/yy"}
Dim myDate As DateTime = DateTime.ParseExact("2009-05-08 14:40:52,531",format,
System.Globalization.CultureInfo.InvariantCulture))