Prefer `Time.now` over `Time.new`

Metadata

ID: ruby-best-practices/time-now

Language: Ruby

Severity: Notice

Category: Best Practices

Description

The rule “Prefer Time.now over Time.new” is a best practice in Ruby programming. Time.new without arguments returns the current time but it’s less descriptive than Time.now. Using Time.now helps to improve the readability of your code by explicitly stating that you are getting the current time.

This rule is important because clear and readable code is essential for maintenance and collaboration. When other developers read your code, they should be able to understand it easily. Using Time.now instead of Time.new for the current time makes your code more self-explanatory.

To avoid this violation, always use Time.now when you want to get the current time. Use Time.new only when you need to create a time object for a specific date and time. For example, Time.new(2024, 2, 29, 12, 0, 0, "+00:00") creates a time object for February 29, 2024, at noon UTC.

Non-Compliant Code Examples

current_time = Time.new

Compliant Code Examples

current_time = Time.now
rule_creation_time = Time.new(2024, 2, 29, 12, 0, 0, "+00:00")
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis