How can I change the @timestamp match my timestamp?

I found that the @timestamp always show UTC time,
i tried to using date filter to match my timezone ("Asia/Shanghai")
timestamp as follows,

"@timestamp" => "2016-04-21T08:39:35.884Z"

my date filter ,

 date {
       match => [ "timestamp" , "yyyy-mm-dd'T'HH:MM:ss'Z' +0800" ]
       timezone => "UTC"

but the date filter seems not working ,
any help would be appreciated.

The @timestamp field is supposed to be in UTC. Do not attempt to change this. It's up to the presentation layer (e.g. Kibana) to make timezone adjustments as necessary.

But Logstash generates indexes based on @timestamp with UTC time,
if I can change the @timestamp to my timezone direct, I think I can directly
search the index.
can I trick Logstash by setting the timezone of the date filter to UTC?
but the date filter seems not working ,what's wrong with it?