3
在我的應用程序中,我將用戶指定的時間轉換爲time_t
格式並存儲它。稍後,我會在當地時區顯示這個時間。這裏是我的測試代碼:將時間(用字符串表示)從一個時區轉換爲另一個時區
int main() {
const char* INPUTFMT = "%b %d, %Y %H:%M:%S %Z";
const char* SAMPLETIME = "Feb 19, 2016 01:00:00 EST";
struct tm tm = {0};
char* val = strptime(SAMPLETIME, INPUTFMT, &tm);
time_t st = mktime(&tm);
const struct tm* t1 = localtime(&st);
static const char* OUTPUTFMT = "%b %d, %G %I:%M:%S %p %Z";
char buf[100];
strftime (buf, 100, OUTPUTFMT, t1);
printf("%s\n", buf);
return 0;
}
指定的時區是EST,我的本地時區是PST。
我遇到的問題是,雖然我的本地時區不同於指定的時區,但除了EST被PST替換外,我看到了同一時間。
我想知道我做錯了什麼。問候。
@stackptr即使當語義含義是一個常量嗎? – user2864740
很確定所有大寫字母都是c/C++ const命名的標準。 – Tdorno
C沒有符號常量。它不是C++。 'const'限定對象是**語義**靜態變量。改用宏。 – Olaf