/* * Copyright (C) 2005 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ANDROID_TIME_H #define ANDROID_TIME_H #include <time.h> #include <cutils/tztime.h> #include <stdint.h> #include <sys/types.h> #include <sys/time.h> #include <utils/String8.h> #include <utils/String16.h> namespace android { /* * This class is the core implementation of the android.util.Time java * class. It doesn't implement some of the methods that are implemented * in Java. They could be done here, but it's not expected that this class * will be used. If that assumption is incorrect, feel free to update this * file. The reason to do it here is to not mix the implementation of this * class and the jni glue code. */ class Time { public: struct tm t; // this object doesn't own this string const char *timezone; enum { SEC = 1, MIN = 2, HOUR = 3, MDAY = 4, MON = 5, YEAR = 6, WDAY = 7, YDAY = 8 }; static int compare(Time& a, Time& b); Time(); void switchTimezone(const char *timezone); String8 format(const char *format, const struct strftime_locale *locale) const; void format2445(short* buf, bool hasTime) const; String8 toString() const; void setToNow(); int64_t toMillis(bool ignoreDst); void set(int64_t millis); inline void set(int sec, int min, int hour, int mday, int mon, int year, int isdst) { this->t.tm_sec = sec; this->t.tm_min = min; this->t.tm_hour = hour; this->t.tm_mday = mday; this->t.tm_mon = mon; this->t.tm_year = year; this->t.tm_isdst = isdst; #ifdef HAVE_TM_GMTOFF this->t.tm_gmtoff = 0; #endif this->t.tm_wday = 0; this->t.tm_yday = 0; } }; }; // namespace android #endif // ANDROID_TIME_H