public static DateTime InZone(this DateTime date, TUfEmi uf) { var zoneName = uf.GetTimeZoneName(); var zone = DateTimeZoneProviders.Tzdb[zoneName]; var instant = Instant.FromDateTimeUtc(date); return instant.InZone(zone).ToDateTimeUnspecified(); }
public static DateTime InZone(this DateTime date, TUfEmi uf) { var zoneName = uf.GetTimeZoneName(); var zone = DateTimeZoneProviders.Tzdb[zoneName]; var instant = Instant.FromDateTimeUtc(date); return(instant.InZone(zone).ToDateTimeUnspecified()); }
public static string ToUfString(TUfEmi uf) { switch (uf) { case XmlSchemas.NfeAutorizacao.Envio.TUfEmi.DF: return("DF"); default: throw new NotImplementedException(); } }
public static string GetTimeZoneName(this TUfEmi uf) { // http://en.wikipedia.org/wiki/Time_in_Brazil#IANA_time_zone_database string zoneName = ""; switch (uf) { //case Atlantic islands // zoneName = "America/Noronha"; // break; case TUfEmi.AP: case TUfEmi.PA: //East zoneName = "America/Belem"; break; case TUfEmi.MA: case TUfEmi.PI: case TUfEmi.CE: case TUfEmi.RN: case TUfEmi.PB: zoneName = "America/Fortaleza"; break; case TUfEmi.PE: zoneName = "America/Fortaleza"; break; case TUfEmi.TO: zoneName = "America/Araguaiaina"; break; case TUfEmi.AL: case TUfEmi.SE: zoneName = "America/Maceio"; break; case TUfEmi.BA: zoneName = "America/Bahia"; break; case TUfEmi.GO: case TUfEmi.DF: case TUfEmi.MG: case TUfEmi.ES: case TUfEmi.RJ: case TUfEmi.SP: case TUfEmi.PR: case TUfEmi.SC: case TUfEmi.RS: zoneName = "America/Sao_Paulo"; break; case TUfEmi.MS: zoneName = "America/Campo_Grande"; break; case TUfEmi.MT: zoneName = "America/Cuiaba"; break; //case TUfEmi.PA: //West // zoneName = "America/Santarem"; // break; case TUfEmi.RO: zoneName = "America/Boa_Vista"; break; case TUfEmi.RR: zoneName = "America/Porto_Velho"; break; case TUfEmi.AM: //East zoneName = "America/Manaus"; break; //case TUfEmi.AM: //West // zoneName = "America/Eirunepe"; // break; case TUfEmi.AC: zoneName = "America/Rio_Branco"; break; } return(zoneName); }