ISO8601 date conversion functions needed.

Hello.
I have urgent tasks and have no time for subj.
Will grant points for VB code (or link) converting dates from ISO8601 format (YYYYMMDD-HH:MM:SS) to Date. CDate function usage prohibited.
Sincerely,
Crin
LVL 2
CrinAsked:
Who is Participating?
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
I think you need the dateserial function, somewhat like this:

dim yourdate as Date
dim strInput as string

strInput = "20010502-19:48:10"

yourdate = DateSerial ( left(strInput,4), mid(strInput, 5,2), mid(strInput, 7,2)) + TimeSerial ( mid(strInput,10,2),mid(strInput,13,2),mid(strInput,16,2))

Cheers
0
 
Anthony PerkinsCommented:
Format$(now,"yyyymmdd-hh:nn:ss")

By the way ISO8601 requires a T between the date and time.

Anthony

0
 
Anthony PerkinsCommented:
Actually the correct format is as follows:
YYYY-MM-DDTHH:MM:SS

Here is the link to the official site
http://www.w3.org/TR/NOTE-datetime

In any case, it is pretty easy to change your code:

Format$(now,"yyyy-mm-ddThh:nn:ss")
0
 
Anthony PerkinsCommented:
angelIII is right I misread the question.

Anthony
0
 
CrinAuthor Commented:
Thanks, 'DateSerial' name of the function would be enough...

Hehe... Looks so interesting, after 14 yrs of programming I was stalled with simpliest task! I defenitely need vacation! :))

Thanks a lot!

PS. (For those who might read it in the future) By the way, ISO8601 format in fact specify letter 'T' between date and time, I replaced it with minus sign to simplify the string appearance. However, answer provided is absolutely right.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.