Ruby on rails 为什么rails字符串到日期时间的转换会忽略时区?
我有一个关于params的请求:Ruby on rails 为什么rails字符串到日期时间的转换会忽略时区?,ruby-on-rails,datetime,timezone,params,Ruby On Rails,Datetime,Timezone,Params,我有一个关于params的请求: ...&from_date=2015-07-09T11:28:06.763+02:00 在控制器中,当使用参数[:from_date]时,它返回DateTime对象: Thu, 09 Jul 2015 11:28:06 +0000 这是UTC时间,但转换时不考虑原始时区+02:00。此外,应用程序时区设置为时区“华沙”+2:00 如何让rails识别params[:from_date]中的时区 编辑 我已更改参数类型: optional :from_
...&from_date=2015-07-09T11:28:06.763+02:00
在控制器中,当使用参数[:from_date]时,它返回DateTime对象:
Thu, 09 Jul 2015 11:28:06 +0000
这是UTC时间,但转换时不考虑原始时区+02:00。此外,应用程序时区设置为时区“华沙”+2:00
如何让rails识别params[:from_date]中的时区
编辑
我已更改参数类型:
optional :from_date, type: DateTime, desc: "From date"
到
可选:起始日期,类型:字符串,描述:起始日期
我发现rails将“+”转换为空格,所以我得到了2015-07-09T11:28:06.763 02:00。因此问题被发现。使用以下代码:
params[:from_date].to_datetime.in_time_zone('Warsaw')
当我尝试这个时,我得到:2015-07-09T11:28:06.763+02:00.to_datetime=>Thu,09 Jul 2015 11:28:06+0200。你是如何使用params[:from_date值的?是的,我确定。我只需要忽略时区就可以获得很好的时间。它不是一个常规的控制器,而是grape api方法。我在方法的开头使用binding.pry,然后只放'params[:from_date]'命令。然后我得到参数中的确切时间和日期,但时区为+0000,因此与输入参数基本不同。参数[:from_date]已经有一个DateTime类。此外,它的值错误-在请求参数中不考虑时区。\u time\u zoneWarsaw中的方法“只是将此错误值转换为不同的时区