# Timezone logstash date filter

**URL:** <https://discuss.elastic.co/t/timezone-logstash-date-filter/281791>\
**Category:** Logstash\
**Created:** [August 18, 2021, 8:44am UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791 "2021-08-18T08:44:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bigbad](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bigbad/32/80628_2.png) [@Bigbad](https://discuss.elastic.co/u/Bigbad)\
**Post date:** [August 18, 2021, 8:44am UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/1 "2021-08-18T08:44:02Z")

</div>

Hello,  
I want to have another date field in Europe/Paris timezone with logstash date filter.

```auto
filter {
  mutate {
    add_field =>{
      "my_date" => "%{@timestamp}"
    }
  }

  date {
    match => ["my_date", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"]
    timezone => "Europe/paris"
    target => "my_date"
  }
}

```

The result is

```auto
"my_date" => 2021-08-18T08:36:05.569Z,
"@timestamp" => 2021-08-18T08:36:05.569Z,

```

What I want is :

```auto
"my_date" => 2021-08-18T10:36:05.569Z,
"@timestamp" => 2021-08-18T08:36:05.569Z,

```

Thank

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [August 18, 2021, 1:51pm UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/2 "2021-08-18T13:51:50Z")

</div>

> [@Bigbad](#):
>
> `"yyyy-MM-dd'T'HH:mm:ss.SSSZ"`

If the timestamp has a Z at the end then it is in UTC and the timezone option is ignored. You can use mutate+gsub to remove it.

---

<div class="post-metadata">

**Author:** ![Bigbad](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bigbad/32/80628_2.png) [@Bigbad](https://discuss.elastic.co/u/Bigbad)\
**Post date:** [August 19, 2021, 4:07pm UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/3 "2021-08-19T16:07:26Z")

</div>

Thank you for you response.  
I use mutate and gsub and extract just "yyyy-MM-dd'T'HH:mm:ss.SSSZ" value  
I use the next config

```auto
date {
    match => ["my_date", "yyyy-MM-dd'T'HH:mm:ss"]
    timezone => "Europe/paris"
    target => "my_date1"
  }

```

and the result is

```auto
"my_date" => 2021-08-18T06:36:05,
"my_date1" => 2021-08-18T08:36:05.569Z,

```

different to what I really want

```auto
"my_date1" => 2021-08-18T10:36:05,
"my_date" => 2021-08-18T08:36:05.569Z,

```

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [August 19, 2021, 5:44pm UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/4 "2021-08-19T17:44:16Z")

</div>

A date filter always converts a date to UTC. If you tell it the timestamp is in Europe/Paris then it will subtract two hours from the timestamp to do that. I get

```
   "my_date" => "2021-08-18T06:36:05",
  "my_date1" => 2021-08-18T04:36:05.000Z,

```

If you want to invert the delta, but keep the start/end dates for DST then this might help

```
    mutate { add_field => { "[my_date]" => "2021-08-18T06:36:05" } }
    date {
        match => ["my_date", "yyyy-MM-dd'T'HH:mm:ss"]
        timezone => "UTC"
        target => "my_date1"
    }
    date {
        match => ["my_date", "yyyy-MM-dd'T'HH:mm:ss"]
        timezone => "Europe/Paris"
        target => "my_date2"
    }
    ruby {
        code => '
            t1 = event.get("my_date1").to_f
            t2 = event.get("my_date2").to_f

            if t1 and t2
                offset = t1 - t2
                event.set("otherTimestamp", LogStash::Timestamp.new(Time.at(t1 + offset)))
            end
        '
    }

```

which produces

```
      "my_date2" => 2021-08-18T04:36:05.000Z,
       "my_date" => "2021-08-18T06:36:05",
      "my_date1" => 2021-08-18T06:36:05.000Z,
"otherTimestamp" => 2021-08-18T08:36:05.000Z
```

---

<div class="post-metadata">

**Author:** ![Bigbad](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bigbad/32/80628_2.png) [@Bigbad](https://discuss.elastic.co/u/Bigbad)\
**Post date:** [August 19, 2021, 6:25pm UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/5 "2021-08-19T18:25:50Z")

</div>

Thank you @Badger ,  
It works perfectly

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 16, 2021, 6:26pm UTC](https://discuss.elastic.co/t/timezone-logstash-date-filter/281791/6 "2021-09-16T18:26:48Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
