#include <FIoDirectory.h>
#include <FBaseResult.h>
#include <FBaseSysLog.h>
+#include <FLclLocaleManager.h>
+#include <FLclTimeZone.h>
#include <FBase_StringConverter.h>
#include <FBase_NativeError.h>
using namespace std;
using namespace Tizen::Base;
+using namespace Tizen::Locales;
using namespace Tizen::App;
namespace Tizen { namespace Io
static const int _BASE_YEAR = 1900;
static const int _MAX_COPY_BYTES = 4096;
-static const int _MAX_OPENMODE_LENGTH = 3;
//Holds app path prefixes
static const char* filePathAppPrefix[] =
attr = statbuf.st_mode;
struct tm resultTm;
- struct tm* pTm = localtime_r(&statbuf.st_mtime, &resultTm);
+ struct tm* pTm = gmtime_r(&statbuf.st_mtime, &resultTm);
SysTryReturnResult(NID_IO, pTm != null, E_SYSTEM, "Failed to get local time (%s).", strerror(errno));
r = dateTime.SetValue(_BASE_YEAR + pTm->tm_year, 1 + pTm->tm_mon, pTm->tm_mday, pTm->tm_hour, pTm->tm_min, pTm->tm_sec);
- SysTryReturn(NID_IO, (!IsFailed(r)), r, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));
+ SysTryReturn(NID_IO, !IsFailed(r), E_SYSTEM, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));
r = modifiedTime.SetValue(_BASE_YEAR + pTm->tm_year, 1 + pTm->tm_mon, pTm->tm_mday, pTm->tm_hour, pTm->tm_min, pTm->tm_sec);
- SysTryReturn(NID_IO, (!IsFailed(r)), r, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));
+ SysTryReturn(NID_IO, !IsFailed(r), E_SYSTEM, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));
+
+ LocaleManager locMgr;
+ locMgr.Construct();
+
+ TimeZone tmZone = locMgr.GetSystemTimeZone();
+ DateTime locDateTime = tmZone.UtcTimeToWallTime(dateTime);
+ DateTime locModifiedTime = tmZone.UtcTimeToWallTime(modifiedTime);
fileName = _FileUtil::GetFileName(filePath);
if (fileName.StartsWith(L".", 0)) // including . and ..
hidden = true;
}
- _FileAttributesImpl::GetInstance(attribute)->Set(dateTime, modifiedTime, fileSize, attr, hidden);
+ _FileAttributesImpl::GetInstance(attribute)->Set(locDateTime, locModifiedTime, fileSize, attr, hidden);
return E_SUCCESS;
}