Example #1
0
        private static string GetMacDateTimeStringHelper(DateTime dt, string cultureStr, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle, bool isUniv)
        {
#if REMOVE
            IntPtr cfLocale = IntPtr.Zero;
            IntPtr cfLocaleName = IntPtr.Zero;

            cfLocaleName = CFStringCreateWithCharacters(IntPtr.Zero, cultureStr, cultureStr.Length);
            cfLocale = CFLocaleCreate(IntPtr.Zero, cfLocaleName);

            IntPtr cfDateFormatter = CFDateFormatterCreate(IntPtr.Zero, cfLocale, dateStyle, timeStyle);
            if (isUniv)
            {
                IntPtr cfTZName = CFStringCreateWithCharacters(IntPtr.Zero, "GMT", 3);
                IntPtr cfTZ = CFTimeZoneCreateWithName(IntPtr.Zero, cfTZName, true);
                CFDateFormatterSetProperty(cfDateFormatter, GetCFString("kCFDateFormatterTimeZone"), cfTZ);
                if (cfTZName != IntPtr.Zero)
                    CFRelease(cfTZName);
                if (cfTZ != IntPtr.Zero)
                    CFRelease(cfTZ);
            }
            DateTime date = dt.ToUniversalTime();
            IntPtr cfReturn = CFDateFormatterCreateStringWithAbsoluteTime(IntPtr.Zero, cfDateFormatter, ((double)date.Ticks) / WIN32_CF_TICKS_RATIO - WIN32_CF_TICKS_DELTA);
            int newLength = CFStringGetLength(cfReturn);
            CFRange cfRange = new CFRange();
            cfRange.x = 0;
            cfRange.y = newLength;
            StringBuilder sb = new StringBuilder(newLength);
            CFStringGetCharacters(cfReturn, cfRange, sb);
            string ret = sb.ToString().Substring(0, newLength);

            if (cfLocale != IntPtr.Zero)
                CFRelease(cfLocale);
            if (cfLocaleName != IntPtr.Zero)
                CFRelease(cfLocaleName);
            if (cfDateFormatter != IntPtr.Zero)
                CFRelease(cfDateFormatter);
            if (cfReturn != IntPtr.Zero)
                CFRelease(cfReturn);
            return ret;
#else
            throw new NotImplementedException();
#endif
        }
Example #2
0
 public static extern IntPtr /* CFDateFormatterRef */ CFDateFormatterCreate(IntPtr /* CFAllocatorRef */ alloc,
       IntPtr /* CFLocaleRef */ locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle);
Example #3
0
 private static string GetUnivMacDateTimeString(DateTime dt, string cultureStr, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle)
 {
     return GetMacDateTimeStringHelper(dt, cultureStr, dateStyle, timeStyle, true);
 }
Example #4
0
 public static extern IntPtr /* CFDateFormatterRef */ CFDateFormatterCreate(IntPtr /* CFAllocatorRef */ alloc,
                                                                            IntPtr /* CFLocaleRef */ locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle);