Issue #10040 has been updated by Andrew Vit.


I like that literal syntax!
~~~
Time.new(2014, 7, 15, 12, 58, 45, "+00:00").utc? #=> false
Time.utc(2014, 7, 15, 12, 58, 45).utc?           #=> true
~~~

The "Z" suffix is for "Zulu Time", also known as UTC, so I would expect that to return a proper UTC time.

Nathan, Date is only available in stdlib (maybe it should be moved to core) so I don't think those literals will work for dates with "D".

One possibility:

~~~
20140715T == 20140715T000000
20140715TZ == 20140715T000000Z
20140715T.to_date
~~~


----------------------------------------
Feature #10040: `%d` and `%t` shorthands for `Date.new(*args)` and `Time.new(*args)`
https://bugs.ruby-lang.org/issues/10040#change-47811

* Author: Nathan Broadbent
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
I'm working on a Ruby application where we have to deal with a lot of dates and times, especially in our test suite. We currently have a couple thousand cases of `Date.new(...)`, and I'm finding the syntax to be a little unwieldy.

What do you think about the following shorthand suggestions?

```ruby
%d(2014, 7, 15)                 # Equivalent to: Date.new(2014, 7, 15)
%t(2014, 7, 15, 12, 58, 45)     # Equivalent to: Time.new(2014, 7, 15, 12, 58, 45)
```
I added commas because I think the syntax should also support variables:

```ruby
year = 2014
month = 7
%d(year, month, 15)             # Equivalent to: Date.new(year, month, 15)
```
I understand that this will operate a bit differently to `%w` and `%i`, but I think that supporting variable evaluation would be a lot more useful.

An alternative proposal would be to add `[]` methods to `Date` and `Time`, so that we could call:

```ruby
Date[2014, 7, 15]
Time[2014, 7, 15, 12, 58, 43]
```
This would be still be a little shorter and nicer to use. Please let me know if you would like me to open a feature ticket for `Date.[]` and `Time.[]` methods, instead.

Please let me know your thoughts. Would you find a shorter date/time syntax useful?



-- 
https://bugs.ruby-lang.org/