c# - Same code but getting different result -


when use below code getting different result on developer pc , remote server.

string _qsdatetime = "12.11.2016 21:30"; var _countryzone = datetimezoneproviders.tzdb["tur"]; var _datepattern = localdatetimepattern.createwithcurrentculture("yyyy-mm-dd hh:mm:ss"); var _localtime = _datepattern.parse(_qsdatetime).value; var _localtime2targetzonetime = _localtime.inzonestrictly(_countryzone); var _targetzone2utc = _localtime2targetzonetime.withzone(datetimezone.utc).todatetimeutc(); _qsdatetime = _targetzone2utc.tostring("yyyy-mm-dd hh:mm:ss"); 

developer pc result is: "2016-11-12 19:30:00" remote server result is: "2016-12-11 19:30:00"

remote server specs windows 2012 server english developer pc specs windows 7 turkish both of them regional date time setting same.

why getting different result?

i'm not too much familiar noda time have few things say:

  1. datetimezoneproviders.tzdb not have time zone identifier tur far know, should use europe/istanbul instead.
  2. when create localdatetimepattern createwithcurrentculture method, uses current culture settings , these different in both server. careful that.
  3. localdatetimepattern.parse method use rules of current pattern. string 12.11.2016 21:30 pattern yyyy-mm-dd hh:mm:ss. see point, don't you?
  4. if different results in servers, shouldn't blame last line since both en-us , tr-tr cultures uses gregoriancalendar calendar property , doesn't effect result. might wanna check localdatetimepattern.parse method line instead.

for example;

using system; using nodatime; using nodatime.text;  public class program {     public static void main()     {         string _qsdatetime = "12.11.2016 21:30";         var _countryzone = datetimezoneproviders.tzdb["europe/istanbul"];         var _datepattern = localdatetimepattern.createwithcurrentculture("dd.mm.yyyy hh:mm");         var _localtime = _datepattern.parse(_qsdatetime).value;         var _localtime2targetzonetime = _localtime.inzonestrictly(_countryzone);         var _targetzone2utc = _localtime2targetzonetime.withzone(datetimezone.utc).todatetimeutc();         _qsdatetime = _targetzone2utc.tostring("yyyy-mm-dd hh:mm:ss");         console.writeline(_qsdatetime);     } } 

generates

2016-11-12 19:30:00 

here demonstration.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -