TZ="Europe/Madrid"
export TZ
Esto funciona desde una shell Bash de UNIX pero no desde la shell de Odoo, sí no he hecho algo mal.
En cambio, haciendo pruebas en la shell de Odoo, he visto que se puede usar la función "openerp.datetime.fields.now()" pasando como argumento el time zone, lo cual, hace que la hora sea local.
import pytz
tz = pytz.timezone('Europe/Madrid')
fields.datetime.now(tz)
Salida: datetime.datetime(2015, 5, 25, 13, 32, 47, 125803, tzinfo=<DstTzInfo 'Europe/Madrid' CEST+2:00:00 DST>)
La función now(timezone) de Odoo del módulo "openerp.datetime.fields" sí permite usar un timezone como argumento y devuelve un objeto de tipo datetime.
En cambio, la función now() de Odoo del módulo "openerp.Datetime.fields" (el cambio es Datetime con D mayúscula), que devuelve la fecha como un string, no tiene en cuenta el timezone que se le pasa como parámetro y, por tanto, muestra la hora en UTC.