ODP.NET converts the value in oracle to a DateTime instance, which either converts it to local time or UTC. the Timezone information itself is lost.
ODP.NET can return the value in an ODP.NET specific type, OracleTimeStampTZ, but as that type is located in ODP.NET, it's not a type supported by mappings by default. Using a type converter sadly won't work, as the value returned by the datareader is already a DateTime instance.
ODP.NET can return an OracleTimeStampTZ but only through an OracleDataAdapter, as it has a save type mapping flag on that class alone. It's also a one-flag-for-all setting so all values will be converted to ODP.NET native types and it's not really useful anyway as we don't use the OracleDataAdapter for query fetches and there's no other flag (that we know of) that makes this automatic. The OracleDataReader (we use it through the interface IDbDataReader and IDataReader) has a specific method to obtain an OracleTimeStampTZ but we use generic code to obtain the values, so we use the GetDateTime() field not the oracle specific method.