NameError: undefined method ‘parse’ for class ‘NilClass’ when doing Time.zone.parse

If you get following error when trying to parse time:

Time.zone.parse('2019-01-01 11:11:11')

Traceback (most recent call last):
16: from /bundler/friendly_errors.rb:124:in `with_friendly_errors'
15: from /bundle:30:in `block in '
14: from /bundler/cli.rb:18:in `start'
13: from /bundler/vendor/thor/lib/thor/base.rb:466:in `start'
12: from /bundler/cli.rb:27:in `dispatch'
11: from /bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
10: from /bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
9: from /bundler/vendor/thor/lib/thor/command.rb:27:in `run'
8: from /bundler/cli.rb:465:in `exec'
7: from /bundler/cli/exec.rb:28:in `run'
6: from /bundler/cli/exec.rb:74:in `kernel_load'
5: from /bundler/cli/exec.rb:74:in `load'
4: from bin/irb:23:in `'
3: from bin/irb:23:in `load'
2: from lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `'
1: from (irb):5

NoMethodError (undefined method `parse' for nil:NilClass)

it means you’ve forgotten to set the timezone:

Time.zone = 'UTC'

Also, keep in mind, that each time you spin up a new thread, it won’t have a timezone defined (outside of Rails):

Sponsored
class="brush: ruby; title: ; notranslate"> Time.zone = 'UTC' Time.zone.parse('2019-01-01 11:11:11') # works Thread.abort_on_exception = true # fails Thread.new do Time.zone.parse('2019-01-01 11:11:11') end # NoMethodError: undefined method `parse' for nil:NilClass

In order to fix that, you need to set the time zone in each of your newly created threads:

Sponsored
Time.zone = 'UTC'

Time.zone.parse('2019-01-01 11:11:11') # works

Thread.abort_on_exception = true

# works
Thread.new do
  Time.zone = 'UTC'
  Time.zone.parse('2019-01-01 11:11:11')
end

Cover photo by Alex The Shutter on Attribution-NonCommercial 2.0 Generic (CC BY-NC 2.0) license.

The post NameError: undefined method ‘parse’ for class ‘NilClass’ when doing Time.zone.parse appeared first on Running with Ruby.

Ubuntu Server Admin

Recent Posts

Cut data center energy costs with bare metal automation

Data centers are popping up everywhere. With the rapid growth of AI, cloud services, streaming…

23 hours ago

Build the future of *craft: announcing Starcraft Bounties!

Our commitment to building a thriving open source community is stronger than ever. We believe…

23 hours ago

NodeJS 18 LTS EOL extended from April 2025 to May 2032 on Ubuntu

The clock was ticking: Node.js 18’s upstream End of Life (EOL) The OpenJS Foundation is…

23 hours ago

Native integration now available for Pure Storage and Canonical LXD

June 25th, 2025 – Canonical, the company behind Ubuntu, and Pure Storage, the IT pioneer…

2 days ago

Revolutionizing Web Page Creation: How Structured Content is Slashing Design and Development Time

Co-authored with Julie Muzina A year ago, during our Madrid Engineering Sprint, we challenged ourselves…

3 days ago

Ubuntu Weekly Newsletter Issue 897

Welcome to the Ubuntu Weekly Newsletter, Issue 897 for the week of June 15 –…

4 days ago