MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Date & Time format..

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107744] Re: Date & Time format..
  • From: "Hans Michel" <hmichel at cox.net>
  • Date: Thu, 25 Feb 2010 01:53:21 -0500 (EST)
  • References: <hlj414$rqp$1@smc.vnet.net> <hm322l$m95$1@smc.vnet.net>

Graser:

This combination did work after some trial and error.

In[10]:= DateList[{"11/4/2009 3:24:06.303 PM",{"MonthShort","DayShort", 
"Year","Hour12Short","Minute","Second","MillisecondShort", "AMPM"}}]

Out[10]= {2009,11,4,15,24,6.303}
In[11]:= DateList[{"11/4/2009 3:24:06.303 PM",{"DayShort","MonthShort", 
"Year","Hour12Short","Minute","Second","MillisecondShort", "AMPM"}}]
Out[11]= {2009,4,11,15,24,6.303}

I think it has to do with taking into account the variable lengths and 
leading zeros of the digits in each element and upper or lower case.

See the list of choices availabel for DateList and DateString

       "Date" full date
       "DateShort" full date, with short day and month names
       "Time" full time
       "DateTime" full date and time
       "DateTimeShort" full date and time, with short names
       "Year" full year (e.g. 2005)
       "YearShort" 2-digit year (e.g. 05)
       "QuarterName" quarter of year (e.g. "Quarter 1")
       "QuarterNameShort" quarter of year in short form (e.g. "Q1")
       "Quarter" quarter number (e.g. 1)
       "MonthName" month name (e.g. "August")
       "MonthNameShort" month name in short form (e.g. "Aug")
       "MonthNameInitial" first letter of month name (e.g. "A")
       "Month" 2-digit month number (e.g. 08)
       "MonthShort" 1- or 2-digit month number (e.g. 8)
       "DayName" day of the week (e.g. "Wednesday")
       "DayNameShort" day of the week in short form (e.g. "Wed")
       "DayNameInitial" first letter of day name (e.g. "W")
       "Day" 2-digit day of the month (e.g. 09)
       "DayShort" 1- or 2-digit day of the month (e.g. 9 or 29)
       "Hour" 2-digit hour based on system preferences
       "Hour12" 2-digit hour on 12-hour clock (e.g. 07)
       "Hour24" 2-digit hour on 24-hour clock (e.g. 19)
       "HourShort" 1- or 2-digit hour based on system preferences
       "Hour12Short" 1- or 2-digit hour on 12-hour clock (e.g. 7)
       "Hour24Short" 1- or 2-digit hour on 24-hour clock (e.g. 7, 19)
       "AMPM" AM or PM
       "AMPMLowerCase" am or pm
       "Minute" 2-digit minute (e.g. 05)
       "MinuteShort" 1- or 2-digit minute (e.g. 5 or 35)
       "Second" 2-digit seconds
       "SecondShort" 1- or 2-digit seconds
       "SecondExact" seconds including fractions
       "Millisecond" 3-digit milliseconds
       "MillisecondShort" 1-, 2- or 3-digit milliseconds

Quit Kernel and started again

In[1]:= DateList[{"11/4/2009 3:24:06.303 
PM",{"MonthShort","DayShort","Year","Hour12Short","Minute","Second","MillisecondShort","AMPM"}}]
Out[1]= {2009,11,4,15,24,6.303}
In[2]:=
DateList[{"11/4/2009 3:24:06.303 
PM",{"DayShort","MonthShort","Year","Hour12Short","Minute","Second","MillisecondShort","AMPM"}}]
Out[2]= {2009,4,11,15,24,6.303}

I tried a leading zero on the Month part to make certain that the presence 
or absence of a leading zero would not affect the conversion. If this is the 
case, seem a safer bet to chose the appropriate options with Short.

In[3]:= DateList[{"11/04/2009 3:24:06.303 
PM",{"DayShort","MonthShort","Year","Hour12Short","Minute","Second","MillisecondShort","AMPM"}}]
Out[3]= {2009,4,11,15,24,6.303}

version
"7.0 for Microsoft Windows (32-bit) (November 10, 2008)"

Also tried on
In[1]:= DateList[{"11/4/2009 3:24:06.303 
PM",{"DayShort","MonthShort","Year","Hour12Short","Minute","Second","MillisecondShort","AMPM"}}]
Out[1]= {2009,4,11,15,24,6.303}
In[2]:= $Version
Out[2]= 7.0 for Microsoft Windows (64-bit) (November 11, 2008)

Even if Mathematica failed here since Mathematica supports Regular 
Expressions there are many regex libraries for date time validation and 
groupings

see http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryid=5&p=2

Michael Ashe stuff is well described. You may need to include the 
milliseconds parts.

Hans

"graser" <graser at gmail.com> wrote in message 
news:hm322l$m95$1 at smc.vnet.net...
> On Feb 18, 5:16 am, Bill Rowe <readn... at sbcglobal.net> wrote:
>> On 2/17/10 at 7:01 AM, gra... at gmail.com (graser) wrote:
>>
>> >I have a list of date and time string such as..
>> >AA = {"Start", "Time", "11/4/2009", "3:24:06.505", "PM"}
>> >I want to read "11/4/2009", "3:24:06.505", "PM" as date format..
>> >so I did
>> >DateList["11/4/2009 3:24:06.505 PM"] and actually it gives me as
>> >{2009, 11, 4, 15, 24, 6.505}
>> >But there is also waring message like..
>> >** DateList::ambig: Warning: the interpretation of the string
>> >11/4/2009 3:24:06.505 PM as a date is ambiguous. >> ***
>> >So I thought the problem was "PM"
>>
>> That is not the issue. The uncertainty is whether the "11/4"
>> portion of the string is a month followed by a day or a day
>> followed by a month.
>>
>> >I tried it again with
>> >DateList[{"11/4/2009 3:24:06.505 PM", {"Day", "Month", "Year",
>> >"Hour", "Minute", "Second", "AMPM"}}]
>> >But it didn't work...
>>
>> This doesn't work because what you told Mathematica to expect
>> doesn't match the format of the string. This works
>>
>> In[9]:= DateList[{"11/4/2009 3:24:06.505 PM", {"Day", "Month", "Year",
>>      "Hour", "Minute", "Second", "Millisecond", "AMPM"}}]
>>
>> Out[9]= {2009,4,11,3,24,6.505}
>>
>> and this works
>>
>> In[10]:= DateList[{"11/4/2009 3:24:06 PM", {"Day", "Month", "Year",
>>     "Hour", "Minute", "Second", "AMPM"}}]
>>
>> Out[10]= {2009,4,11,3,24,6}
>
> Hello,
>
> Thanks for your reply...
>
> But my question was
>
> 1. how to make Mathematica recognize AMPM situation
>
> It is not working with your methods
>
> 2. Yes.. how to clear the ambiguity..
> either day/month or month/day...
> 



  • Prev by Date: Re: Transition to Wolfram Workbench
  • Next by Date: Functions
  • Previous by thread: Re: Date & Time format..
  • Next by thread: Re: Re: Date & Time format..