thank you for your opinion.

On 8월25일, 오후5시40분, Kostya Vasilyev <kmans...@gmail.com> wrote:
>   The time here (at least in this piece of code) comes from calling
> "time(NULL)", which is really no better than calling new Date().getTime().
>
> You are also confusing local time and time set by the user. Local time
> is UTC time corrected by the local timezone. Java uses UTC time for
> internal representation, is not affected by timezone changes, and
> shouldn't give you any trouble.
>
> On the other hand, the user is free to change time to any value
> whatsoever, even an incorrect one. The time zone setting can be wrong, too.
>
> If you really need time information that's device- (and user-)
> independent, you'll need to get it from some place that's not controlled
> by the user and can be counted on for being there.
>
> Like an NTP server.
>
> http://www.pool.ntp.org/en/
>
> -- Kostya
>
> 25.08.2010 12:11, optimusgeek пишет:
>
>
>
>
>
> > I need to get pure UTC time in application level.
> > It should not be changed by user or location or anything else.
> > When I try with System.currentTimeMillis() or getTime() of Date class,
> > they always return value of local time. If user change date or time,
> > the return value is also changed.
> > I found handleEndOfInit method in android_modem.c (external\qemu
> > \telephony)
> > and the method is like below.
> > Probably, the variable "utc" is what I want.
>
> > 1. Is the android_modem.c for emulator??
> > 2. If it is, I think there must be similar file for target. Where is
> > it?
> > 3. How can I get the "utc" value in my application?
>
> > static const char*
> > handleEndOfInit( const char*  cmd, AModem  modem )
> > {
> >      time_t       now = time(NULL);
> >      struct tm    utc, local;
> >      long         e_local, e_utc;
> >      long         tzdiff;
> >      char         tzname[64];
>
> >      tzset();
>
> >      utc   = *gmtime(&now );
> >      local = *localtime(&now );
>
> >      e_local = local.tm_min + 60*(local.tm_hour + 24*local.tm_yday);
> >      e_utc   = utc.tm_min   + 60*(utc.tm_hour   + 24*utc.tm_yday);
>
> >      if ( utc.tm_year<  local.tm_year )
> >          e_local += 24*60;
> >      else if ( utc.tm_year>  local.tm_year )
> >          e_utc += 24*60;
>
> >      tzdiff = e_local - e_utc;  /* timezone offset in minutes */
>
> >     /* retrieve a zoneinfo-compatible name for the host timezone
> >      */
> >      {
> >          char*  end = tzname + sizeof(tzname);
> >          char*  p = bufprint_zoneinfo_timezone( tzname, end );
> >          if (p>= end)
> >              strcpy(tzname, "Unknown/Unknown");
>
> >          /* now replace every / in the timezone name by a "!"
> >           * that's because the code that reads the CTZV line is
> >           * dumb and treats a / as a field separator...
> >           */
> >          p = tzname;
> >          while (1) {
> >              p = strchr(p, '/');
> >              if (p == NULL)
> >                  break;
> >              *p = '!';
> >              p += 1;
> >          }
> >      }
>
> >     /* as a special extension, we append the name of the host's time
> > zone to the
> >      * string returned with %CTZ. the system should contain special
> > code to detect
> >      * and deal with this case (since it normally relied on the
> > operator's country code
> >      * which is hard to simulate on a general-purpose computer
> >      */
> >      return amodem_printf( modem, "%%CTZV: %02d/%02d/%02d:%02d:%02d:%02d
> > %c%d:%d:%s",
> >               (utc.tm_year + 1900) % 100, utc.tm_mon + 1, utc.tm_mday,
> > utc.tm_hour, utc.tm_min, utc.tm_sec,
> >               (tzdiff>= 0) ? '+' : '-', (tzdiff>= 0 ? tzdiff : -
> > tzdiff) / 15,
> >               (local.tm_isdst>  0),
> >               tzname );
> > }
>
> --
> Kostya Vasilev -- WiFi Manager + pretty widget 
> --http://kmansoft.wordpress.com- 원본 텍스트 숨기기 -
>
> - 원본 텍스트 보기 -

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to