haiku/headers/private/libroot/locale/ICUTimeConversion.h
Oliver Tappe 560b10ff88 Implement tzset(), gmtime(), localtime() and mktime() on top of ICU
* no longer keep a separate time-backend, since the implementation needs to
  access (data of) the locale backend anyway
* moved more stuff from localtime_fading_out.c to localtime.cpp
* added respective tests to locale_test
* added two more tests copied from glibc, test_time.c and tst-mktime.c


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-16 21:14:23 +00:00

50 lines
1005 B
C++

/*
* Copyright 2010, Oliver Tappe, zooey@hirschkaefer.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _ICU_TIME_CONVERSION_H
#define _ICU_TIME_CONVERSION_H
#include <time.h>
#include "ICUTimeData.h"
#include "LocaleBackend.h"
namespace BPrivate {
class ICUTimeConversion {
public:
ICUTimeConversion(const ICUTimeData& timeData);
virtual ~ICUTimeConversion();
virtual void Initialize(
TimeConversionDataBridge* dataBridge);
status_t TZSet(const char* timeZoneID);
status_t Localtime(const time_t* inTime,
struct tm* tmOut);
status_t Gmtime(const time_t* inTime, struct tm* tmOut);
status_t Mktime(struct tm* inOutTm, time_t& timeOut);
private:
status_t _FillTmValues(const TimeZone* icuTimeZone,
const time_t* inTime, struct tm* tmOut);
const ICUTimeData& fTimeData;
TimeConversionDataBridge* fDataBridge;
char fTimeZoneID[64];
};
} // namespace BPrivate
#endif // _ICU_TIME_BACKEND_H