开发者

Workout the string format used for DateTime formatting

I have a string which represents a DataTime value, and I want to workout what string format was used to create the string.

For example

- Given "Wednesday 27 Jan 2010" I ex开发者_运维知识库pect "dddd dd MMM yyyy"

- Given "2010 01 27" I expect "yyyy MM dd"

Assume that the date is close to DateTime.Now and relates to the CurrentCulture. So given that we have en-GB culture

- Given "01 01 2010" I expect "dd MM yyyy"

Is there a simple way to do this?


The simplest thing to do is look at the reference for datetime formatting strings and working them out.

You may be able to use reflection in order to get this, or use disassembler (such as ILDASM) to find all the strings used in an assembly and guess at which ones are datetime formatting string.

If disassmbling, you can search for the days of the week and for a string starting with dddd, which should tell you how the original was constructed.


you could split on whitespace to get an array of strings then you could test the elements in the array against known values to try to guess the format

e.g. if you search for "Wednesday" if you find it assume "dddd"

if a four digit number assume yyyy

days and months could be a problem, you could test for > 12 for the days but that's pretty bad

maybe you could infer the format using whitespace split then DateTime.Parse on the orignal and test against a formatted (using the infered format) version of the parsed date for equality

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜