Unable to replace @timestamp with some other field in logstash

Please show us an example event. Use a stdout { codec => rubydebug } output.

timestamp and @timestamp does not have same value

Why would they have the same value when you've configured the date filter to store the parsed timestamp into the timestamp field, leaving @timestamp untouched?