On May 14, 2014, at 10:38 PM, Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote:

> 
> On 15 May 2014, at 02:00, Ken Thomases <k...@codeweavers.com> wrote:
> 
>> 
>> On May 14, 2014, at 8:41 AM, Jonathan Mitchell wrote:
>> 
>>> Is there a way to obtain an NSDate object from a casually entered user 
>>> string, say: 1 1 2015 or 25 jul 15?
>>> 
>>> I have looked at the various NSDateFormatter and NSDate API and cannot spot 
>>> what I am after.
>> 
>> You might try NSDataDetector with type NSTextCheckingTypeDate.
> 
> I did just that, and are a bit puzzled.
> 
> 1. NSDataDetector recognises all date formats I encountered, which is rather 
> good.
> 
> 
> 2. NSDataDetector ignores fractions of a second:
> e.g. "2014-05-14 11:33:53.126" gets converted to: "2014-05-14 11:33:53  
> +0700", which in my case is not really a problem.
> 
> 
> 3. But sometimes the date of NSDataDetector is 12h ahead (again ignoring 
> fractions of a second):
> 
> "2014-05-15 07:52:18.658" →  "2014-05-15 19:52:18  +0700"
> "2014-05-14 05:59:46.490 +0700" → "2014-05-14 17:59:46.490 +0700"
> 
> But not always - these work ok:
> "2014-05-15 08:22:48.135"
> "2014-05-15 09:15:35 +0700"
> Also, all times after about 13:00 are correct.
> 
> This arbitrary advancement of 12h is obviously NOT acceptable.
> What am I doing wrong?

That's the trouble with accepting arbitrary user input. If a user enters a time 
of "1:23", s/he might mean 1:23 AM, 1:23 PM, or 1:23 military time, and there's 
no real way to determine which is intended without reading the user's mind. So, 
the system has to guess. Sometimes it may not guess correctly.

If the user specifically enters "1:23 AM" to remove the ambiguity, this should 
solve the issue.

Charles


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to