Re: [Cppcms-users] booster::locale::date_time to timestamp conversion issues / basis for booster::l
Brought to you by:
artyom-beilis
From: Artyom B. <art...@ya...> - 2015-11-26 16:04:11
|
Mostly it is important the intermediate output values.Also look if ICU is linked i.e. ldd /usr/lib/libbooster.so - if it islinked to ICU or not. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ From: Alexander Mack <a....@ev...> To: Artyom Beilis <art...@ya...>; cpp...@li... Sent: Thursday, November 26, 2015 5:29 PM Subject: Re: [Cppcms-users] booster::locale::date_time to timestamp conversion issues / basis for booster::locale::date_time Hi Artyom, Thank you for the promt answer. For building CppCMS I used the description on http://cppcms.com/wikipp/en/page/cppcms_1x_build. I did not make any special configurations regarding the ICU. The CppCMS version is the same (Revision: 2329). Is it possible, that the Ubuntu version (and with that difference ICU versions) can influence the results? The "working" maschine is Ubuntu 14.04.3 LTS with the following ICU Version: <icuSystemParams type="icu4c"> <param name="copyright"> Copyright (C) 2013, International Business Machines Corporation and others. All Rights Reserved. </param> <param name="product">icu4c</param> <param name="product.full">International Components for Unicode for C/C++</param> <param name="version">52.1</param> <param name="version.unicode">6.3</param> <param name="platform.number">4000</param> <param name="platform.type">Linux</param> <param name="locale.default">de_DE</param> <param name="locale.default.bcp47">de-DE</param> <param name="converter.default">UTF-8</param> <param name="icudata.name">icudt52l</param> <param name="icudata.path"></param> <param name="cldr.version">24.0</param> <param name="tz.version">2013g</param> <param name="tz.default">Europe/Berlin</param> <param name="cpu.bits">64</param> <param name="cpu.big_endian">0</param> <param name="os.wchar_width">4</param> <param name="os.charset_family">0</param> <param name="os.host">x86_64-pc-linux-gnu</param> <param name="build.build">x86_64-pc-linux-gnu</param> <param name="build.cc">gcc</param> <param name="build.cxx">g++</param> <param name="uconfig.internal_digitlist">1</param> <param name="uconfig.have_parseallinput">1</param> <param name="uconfig.format_fastpaths_49">1</param> </icuSystemParams> ICU Initialization returned: U_ZERO_ERROR The "not working" machine is Ubuntu 13.10 with the following ICU infos: <ICUINFO> International Components for Unicode for C/C++ Copyright (C) 2011, International Business Machines Corporation and others. All Rights Reserved. Compiled-Version: 4.8.1.1 Runtime-Version: 4.8.1.1 Compiled-Unicode-Version: 6.0 Runtime-Unicode-Version: 6.0 Platform: U_LINUX Build: x86_64-pc-linux-gnu C compiler: gcc C++ compiler: g++ ICUDATA: icudt48l Data Directory: ICU Initialization returned: U_ZERO_ERROR Default locale: de_DE CLDR-Version: 2.0.1 Default converter: UTF-8 Default TZ: Europe/Berlin TZ data version: 2011k Plugin file is: /usr/lib/x86_64-linux-gnu/icu/icuplugins48.txt </ICUINFO> I did no further calculations on the date_time objects. The following source code is the whole date_time example I was trying out. The complete test project is a little bit larger.. But I could try to create a small test program and check the behaviour. // get some time some month ago.. booster::locale::date_time dtCurrentTime; booster::locale::date_time dtSomeMonthAgo = dtCurrentTime - (booster::locale::period::month()); // get date_time for 1970-01-01 00:00:00 booster::locale::date_time dtStart(0); // get timestamp int iDifference = dtStart.difference(dtCurrent, booster::locale::period::second()); BOOSTER_DEBUG("test") << "Timestamp of dtSomeMonthAgo: " << iDifference; Thank you very much for your help, Alex Am 26.11.2015 um 15:37 schrieb Artyom Beilis: Is CppCMS compiled with ICU on both machines? Is it same CppCMS version? Also can you print all intermediate calculations as well? (i.e. dtCurrentTime,dtSomeMonthAgo and dtStart) In general second difference should be trivial i.e. mostly calculate difference between internal timestamp. Artyom From: Alexander Mack <a....@ev...> To: cpp...@li... Sent: Thursday, November 26, 2015 3:30 PM Subject: [Cppcms-users] booster::locale::date_time to timestamp conversion issues / basis for booster::locale::date_time Hello, I'm trying to convert a date_time object into a simple timestamp e.g.: // init environment... std::locale::global(booster::locale::generator().generate("")); cppcms::service srv(argc, argv); // .... // get some time some month ago.. booster::locale::date_time dtCurrentTime; booster::locale::date_time dtSomeMonthAgo = dtCurrentTime - (booster::locale::period::month()); // get date_time for 1970-01-01 00:00:00 booster::locale::date_time dtStart(0); // get timestamp int iDifference = dtStart.difference(dtCurrent, booster::locale::period::second()); That code works fine on Machine A.. But when I'm running the program on Machine B I get weird results.. On Machine A the timestamp for Mon, 26 Oct 2015 12:37:12 GMT is 1445863032. (correct) On Machine B the timestamp for Mon, 26 Oct 2015 12:37:12 GMT is 536870912. (wrong) The times on the machines are equal too.. timedatectl: Machine A: Local time: Do 2015-11-26 14:25:12 CET Universal time: Do 2015-11-26 13:25:12 UTC Timezone: Europe/Berlin (CET, +0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at So 2015-10-25 02:59:59 CEST So 2015-10-25 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at So 2016-03-27 01:59:59 CET So 2016-03-27 03:00:00 CEST Machine B: Local time: Do 2015-11-26 14:25:38 CET Universal time: Do 2015-11-26 13:25:38 UTC RTC time: Do 2015-11-26 13:25:38 Timezone: Europe/Berlin (CET, +0100) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at So 2015-10-25 02:59:59 CEST So 2015-10-25 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at So 2016-03-27 01:59:59 CET So 2016-03-27 03:00:00 CEST Maybe someone had the same issue and knows what the problem is? I would appreciate any tip :-) Thank you very much, Alex ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140 _______________________________________________ Cppcms-users mailing list Cpp...@li... https://lists.sourceforge.net/lists/listinfo/cppcms-users ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140 _______________________________________________ Cppcms-users mailing list Cpp...@li... https://lists.sourceforge.net/lists/listinfo/cppcms-users |