Hi Edwin,
There must be something wrong with your installation. I created the
attached tests (simply copied yours) and I'm getting the correct output. I
even set the locale to nl_BE, in case that was the problem.
My output was:
2017-08-26 11:28:59.892 a.out[2724:2724] the date as date
object 2017-08-26 11:28:59 -0400
2017-08-26 11:28:59.893 a.out[2724:2724] Dateformatter defaults
2017-08-26 11:28:59.893 a.out[2724:2724] DateFormatter timezone:
America/New_York
2017-08-26 11:28:59.893 a.out[2724:2724] DateFormatter locale: en_US
2017-08-26 11:28:59.893 a.out[2724:2724] DateFormatter datestyle: 0
2017-08-26 11:28:59.893 a.out[2724:2724] DateFormatter timestyle: 0
2017-08-26 11:28:59.893 a.out[2724:2724] Date formatted with defaults
20170826 11:28 AM
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter: Date -> NoStyle,
Time -> MediumStyle
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter timezone:
America/New_York
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter locale: nl_BE
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter datestyle: 0
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter timestyle: 2
2017-08-26 11:28:59.914 a.out[2724:2724] Date formatted with style
11:28:59
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter: Date -> LongStyle,
Time -> LongStyle
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter timezone:
America/New_York
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter locale: nl_BE
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter datestyle: 3
2017-08-26 11:28:59.914 a.out[2724:2724] DateFormatter timestyle: 3
2017-08-26 11:28:59.924 a.out[2724:2724] Date formatted with style 26
augustus 2017 11:28:59 GMT-4
You might want to you libicudata.so file and make sure it is huge! That's
the "library" (it's more of a resource file) where all this Unicode stuff
resides. There's a chance yours was not built with all the resources. As an
example, here's mine:
$ ls -lh /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
-rw-r--r-- 1 root root 25M May 2 09:50
/usr/lib/x86_64-linux-gnu/libicudata.so.55.1
As you can see, it's 25MB in size.
On Sat, Aug 26, 2017 at 8:55 AM, Stefan Bidigaray <[email protected]>
wrote:
> Hmm, that does seem stage. It should all be working. I'm sure the problem
> is not the FreeBSD source, David does a pretty good job keeping those
> updated.
>
> I'll test it on my end a bit to try to figure it out.
>
> On Aug 26, 2017 00:46, "Edwin Ancaer" <[email protected]> wrote:
>
>> Fred, Stefan,
>>
>> Indeed, the instruction [format lenient] returns 1, independant of
>> setting the value with
>> [format setLenient: NO] and [format setLenient: YES].
>>
>> I'm sure I saw libicu mentioned in the dependencies for gnustep, and
>> given the definition of isLenient in NSDatformatter.m and the fact that I
>> got 1 from isLenient, I supposed that GS_USE_ICU was 1: return NO resulting
>> in the value 1 seems illogical.
>>
>> - (BOOL) isLenient
>> {
>> #if GS_USE_ICU == 1
>> return (BOOL)udat_isLenient (internal->_formatter);
>> #else
>> return NO;
>> #endif
>> }
>>
>> But thinking of it, this is the source from
>> https://github.com/gnustep/libs-base/blob/master/Source/NSDateFormatter.m.,
>> I've got no idea were FreeBSD is getting its sources. I will have to look
>> into the freebsd ports mechanism to find out, just to be sure. Or try
>> the debugger, to see what is really going on.
>>
>> Concerning the locale, the value for systemlocale is "en_US_posix", the
>> default locale is "nl_BE",and the locale returned from the NSDateFormatter
>> is also "nl_BE". But I admit, the returned values do not look correctly
>> formatted either.
>>
>> Again, maybe the debugger is the best way to find out what is going wrong.
>>
>>
>> Thanks for your anwers already, I'll see if I can find out more about
>> this. Or give up, and just use format strings....
>>
>> Kind regards,
>>
>> Edwin
>>
>> 2017-08-25 15:21 GMT+02:00 Stefan Bidigaray <[email protected]>:
>>
>>> Based on your previous posts, it sounds like your current locale is
>>> en_US_POSIX. Can you verify that by checking the output of [NSDateFormatter
>>> -locale]? This locale outputs the same date string regardless of the style.
>>>
>>> You can set the formatter's locale with -setLocale: before any calls to
>>> -stringFromDate:.
>>>
>>> On Aug 25, 2017 00:38, "Edwin Ancaer" <[email protected]> wrote:
>>>
>>>> Hello,
>>>>
>>>> I hardly dare to suggest it, but I have got the impression that the
>>>> methods setDateStyle & setTimeStyle have no influence on the result of the
>>>> method stringFromDate, as you can see in the examples below.
>>>>
>>>> Is it me, again not having understood the workings of these classes
>>>> completely, or is there really a problem?
>>>>
>>>> I'm on FreeBSD 11.0, with gnustep installed from the ports.
>>>>
>>>> Examples:
>>>>
>>>> NSDate* d = [NSDate date];
>>>> NSLog(@"the date as date object %@", d);
>>>>
>>>> 2017-08-25 06:20:32.673 TM1[1295:100101] the date as date
>>>> object 2017-08-25 06:20:32 +0200
>>>>
>>>>
>>>> NSDateFormatter* format = [[NSDateFormatter alloc] init];
>>>> NSLog(@"Dateformatter defaults");
>>>> NSLog(@" DateFormatter timezone: %@", [format timeZone]);
>>>> NSLog(@" DateFormatter locale: %@", [format locale]);
>>>> NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
>>>> NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
>>>> NSLog(@" Date formatted with defaults %@", [format
>>>> stringFromDate: d]);
>>>>
>>>> 2017-08-25 06:20:32.695 TM1[1295:100101] Dateformatter defaults
>>>> 2017-08-25 06:20:32.703 TM1[1295:100101] DateFormatter timezone:
>>>> Europe/Brussels
>>>> 2017-08-25 06:20:32.711 TM1[1295:100101] DateFormatter locale: nl_BE
>>>> 2017-08-25 06:20:32.719 TM1[1295:100101] DateFormatter datestyle: 0
>>>> 2017-08-25 06:20:32.727 TM1[1295:100101] DateFormatter timestyle: 0
>>>> 2017-08-25 06:20:32.736 TM1[1295:100101] Date formatted with
>>>> defaults 20170825 06:20 a.m.
>>>>
>>>>
>>>> [format setDateStyle: NSDateFormatterNoStyle];
>>>> [format setTimeStyle: NSDateFormatterMediumStyle];
>>>> NSLog(@"DateFormatter: Date -> NoStyle, Time -> MediumStyle");
>>>> NSLog(@" DateFormatter timezone: %@", [format timeZone]);
>>>> NSLog(@" DateFormatter locale: %@", [format locale]);
>>>> NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
>>>> NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
>>>> NSLog(@" Date formatted with style %@", [format
>>>> stringFromDate: d]);
>>>>
>>>> 2017-08-25 06:20:32.745 TM1[1295:100101] DateFormatter: Date ->
>>>> NoStyle, Time -> MediumStyle
>>>> 2017-08-25 06:20:32.754 TM1[1295:100101] DateFormatter timezone:
>>>> Europe/Brussels
>>>> 2017-08-25 06:20:32.763 TM1[1295:100101] DateFormatter locale: nl_BE
>>>> 2017-08-25 06:20:32.773 TM1[1295:100101] DateFormatter datestyle: 0
>>>> 2017-08-25 06:20:32.783 TM1[1295:100101] DateFormatter timestyle: 2
>>>> 2017-08-25 06:20:32.794 TM1[1295:100101] Date formatted with
>>>> style 20170825 06:20 a.m.
>>>>
>>>>
>>>> [format setDateStyle: NSDateFormatterLongStyle];
>>>> [format setTimeStyle: NSDateFormatterLongStyle];
>>>> NSLog(@"DateFormatter: Date -> LongStyle, Time -> LongStyle");
>>>> NSLog(@" DateFormatter timezone: %@", [format timeZone]);
>>>> NSLog(@" DateFormatter locale: %@", [format locale]);
>>>> NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
>>>> NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
>>>> NSLog(@" Date formatted with style %@", [format
>>>> stringFromDate: d]);
>>>>
>>>> 2017-08-25 06:20:32.809 TM1[1295:100101] DateFormatter: Date ->
>>>> LongStyle, Time -> LongdiumStyle
>>>> 2017-08-25 06:20:32.825 TM1[1295:100101] DateFormatter timezone:
>>>> Europe/Brussels
>>>> 2017-08-25 06:20:32.838 TM1[1295:100101] DateFormatter locale: nl_BE
>>>> 2017-08-25 06:20:32.853 TM1[1295:100101] DateFormatter datestyle: 3
>>>> 2017-08-25 06:20:32.867 TM1[1295:100101] DateFormatter timestyle: 3
>>>> 2017-08-25 06:20:32.881 TM1[1295:100101] Date formatted with
>>>> style 20170825 06:20 a.m.
>>>>
>>>> Could someone tell me what the problem is here?
>>>>
>>>> Thanks,
>>>>
>>>> Edwin Ancaer
>>>>
>>>> _______________________________________________
>>>> Discuss-gnustep mailing list
>>>> [email protected]
>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>>>>
>>>>
>>
#include <Foundation/Foundation.h>
int main (void)
{
NSAutoreleasePool *pool;
pool = [NSAutoreleasePool new];
NSDate* d = [NSDate date];
NSLog(@"the date as date object %@", d);
NSDateFormatter* format = [[NSDateFormatter alloc] init];
NSLog(@"Dateformatter defaults");
NSLog(@" DateFormatter timezone: %@", [format timeZone]);
NSLog(@" DateFormatter locale: %@", [format locale]);
NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
NSLog(@" Date formatted with defaults %@", [format stringFromDate: d]);
NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier: @"nl_BE"];
[format setLocale: loc];
[format setDateStyle: NSDateFormatterNoStyle];
[format setTimeStyle: NSDateFormatterMediumStyle];
NSLog(@"DateFormatter: Date -> NoStyle, Time -> MediumStyle");
NSLog(@" DateFormatter timezone: %@", [format timeZone]);
NSLog(@" DateFormatter locale: %@", [format locale]);
NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
NSLog(@" Date formatted with style %@", [format stringFromDate: d]);
[format setDateStyle: NSDateFormatterLongStyle];
[format setTimeStyle: NSDateFormatterLongStyle];
NSLog(@"DateFormatter: Date -> LongStyle, Time -> LongStyle");
NSLog(@" DateFormatter timezone: %@", [format timeZone]);
NSLog(@" DateFormatter locale: %@", [format locale]);
NSLog(@" DateFormatter datestyle: %u", [format dateStyle]);
NSLog(@" DateFormatter timestyle: %u", [format timeStyle]);
NSLog(@" Date formatted with style %@", [format stringFromDate: d]);
RELEASE(format);
RELEASE(loc);
RELEASE(pool);
return 0;
}
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep