Ent*_*ity 0 c# regex format time
我正在制作一个考勤卡计划,用户输入开始时间,结束时间和项目名称.他们可以单击"添加",然后将输入的详细信息添加到列表框中.
我不允许添加数据,除非开始时间和结束时间的格式如下:08:14am但是,这很烦人,不得不每次都输入它,所以我决定通过正则表达式让它自动格式化.因此,如果您输入8:14,它将更改为08:14am.我怎样才能实现这个目标Regex.Replace()?
如果您有任何其他方法,请不要犹豫,列出它们.
编辑1:我还有其他替代品; 例如814去08:14am,8去08:00am
编辑2:所以现在我正在使用这段代码:
string[] formats = { "h:mm", "h", "hh", "hmm", "hhmm", "h:mmtt", "htt", "hhtt" };
DateTime dt = DateTime.ParseExact(t.Text, formats, new CultureInfo("en-US"), DateTimeStyles.None);
t.Text = dt.ToString("hh:mmtt").ToLower();
Run Code Online (Sandbox Code Playgroud)
它取代了一些东西,h:mm但不是其他东西h.
你看过了DateTime.Parse吗?它接受"08:14am","8:14"[1]和其他变体,并返回一DateTime组到今天上午8:14.
[1]至少在英国文化中 - 考虑CultureInfo根据您是否要关注用户的本地格式首选项或采用固定格式来提供参数.
编辑我还有其他替代品; 例如814到上午08:14,而8到早上08:00
看看DateTime.ParseExact:你可以提供一系列有效的时间格式(例如"hh:mm","hmm","h"等)