Re: date syntax not working on 10.10.5?
Re: date syntax not working on 10.10.5?
- Subject: Re: date syntax not working on 10.10.5?
- From: "Stockly, Ed" <email@hidden>
- Date: Fri, 21 Aug 2015 21:54:10 +0000
- Thread-topic: date syntax not working on 10.10.5?
I have a confession to make.
After testing AppleScriptObjC stuff, I never looked at it again. It seemed
pretty cool, but beyond the scope of what I had time and need for.
However, if I could get data detectors back, even if it was just for
dates, that would be worth it.
This dead horse you've flogged has convinced me to take the leap.
Where do I start?
Ed Stockly
LA Times
>
>On Aug 20, 2015, at 11:13 AM, Stockly, Ed <email@hidden> wrote:
>
>
>I used to be able to do this:
>
>Date "September 4"
>Date "Fri., September 4"
>Date "Fri. Sept. 4"
>Date "Fri Sep 4"
>
>Date "Sep. 4"
>
>Date "Sept. 4"
>
>Date "9/4"
>
>Date "9/4/15"
>
>Date "09/04/2015"
>
>Date "9/4/2015"
>
>
>
>
>
>
>At the risk of flogging a dead horse, I should point out that there is an
>alternative API for *guessing* dates from strings. It's data detectors, a
>technology resurrected from OSes of old, and it's what used when, for
>example, you hover over a date in
> an email or document. It actually searches through a string for
>potential dates, rather than treating the whole string as a single date.
>It does a sort of enhanced regular-expression search based on your locale.
>
>So as an exercise, let's throw a variation of the above at it (and I've
>set my date format to US for this):
>
>use framework "Foundation"
>use script "BridgePlus"
>on getDatesIn:aString
>setanNSString to current application'sNSString's stringWithString:aString
>set {theDetector,
>theError} to current application'sNSDataDetector's
>dataDetectorWithTypes:(current application'sNSTextCheckingTypeDate)
>|error|:(reference)
>settheMatches to
>theDetector's matchesInString:anNSStringoptions:0
>range:{0,
>anNSString's |length|()}
>settheDates to current application'sNSMutableArray's array()
>repeatwith i from 1
>to theMatches's
>|count|()
>setthisMatch to (theMatches'sobjectAtIndex:(i - 1))
>(theDates'saddObject:(thisMatch's|date|()))
>end
>repeat
>returntheDates
>end getDatesIn:
>
>set theString
>to "Sunny September 4
>Fri., September 1
>Fri. Sept. 2
>Fri Sep 3
>Sep. 4
>Sept. 9
>9/8
>9/7/15
>09/06/2015
>9/5/2015"
>set theDatesto ASifyfrom (mygetDatesIn:theString)
> -->{
>date "Friday, September 4, 2015 at 12:00:00 PM",
>date "Tuesday, September 1, 2015 at 12:00:00 PM",
>date "Wednesday, September 2, 2015 at 12:00:00 PM",
>date "Thursday, September 3, 2015 at 12:00:00 PM",
>date "Friday, September 4, 2015 at 12:00:00 PM",
>date "Wednesday, September 9, 2015 at 12:00:00 PM",
>date "Monday, September 7, 2015 at 12:00:00 PM",
>date "Sunday, September 6, 2015 at 12:00:00 PM",
>date "Saturday, September 5, 2015 at 12:00:00 PM"
>}
>
>
>
>As you can see, it picked up all but the m/d form -- because it's parsing
>the complete string, it presumably errs on the side of caution given that
>#/# might be a fraction.
>
>Now that might well be good enough for your use: you could prompt only if
>it failed, or do an initial count of slashes. It depends on what's
>acceptable to you.
>
>But if you run it with the string that started this thread:
>
>set theDates
>to ASify
>from (my getDatesIn:"10:11")
> -->{
>date "Friday, August 21, 2015 at 10:11:00 PM"
>}
>
>
>
>You will see that, for some unknown reason, it guessed wrong. That's
>probably worth logging as a bug, but the point is that unless the format
>of the string and the expected format of the string match, it's just
>guesswork. Educated guesswork, for sure --
> but as you can see, not infallible.
>
>(Oh, and data detectors are very neat, and aren't limited to dates...)
>
>--
>Shane Stanley <email@hidden>
><www.macosxautomation.com/applescript/apps/
><http://www.macosxautomation.com/applescript/apps/>>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden