Ruby에서 DateTime의 시간 부분 설정
예를 들어 datetime 객체가 있다고 가정합니다 DateTime.now
. 시간과 분을 0 (자정)으로 설정하고 싶습니다. 어떻게 할 수 있습니까?
Rails 환경에서 :
ActiveSupport 덕분에 다음을 사용할 수 있습니다.
DateTime.now.midnight
DateTime.now.beginning_of_day
또는
DateTime.now.change({ hour: 0, min: 0, sec: 0 })
# More concisely
DateTime.now.change({ hour: 0 })
순전히 Ruby 환경에서 :
now = DateTime.now
DateTime.new(now.year, now.month, now.day, 0, 0, 0, now.zone)
또는
now = DateTime.now
DateTime.parse(now.strftime("%Y-%m-%dT00:00:00%z"))
신경 쓰지 마. 새 DateTime을 만들어야합니다.
DateTime.new(now.year, now.month, now.day, 0, 0, 0, 0)
경고 : DateTime.now.midnight
및 DateTime.now.beginning_of_day
(현재 날짜의 제로 시간 - 당신은 그 이름에서 기대하는 것처럼 자정 24:00:00 반환하지 않습니다) 같은 값을 반환합니다.
그래서 나는 미래의 자정 x 일을 계산하기 위해 받아 들여지는 대답을 사용할 수있는 사람을 위해 이것을 추가 정보로 추가하고 있습니다.
예를 들어 14 일 자정에 만료되는 14 일 무료 평가판은 다음과 같습니다.
DateTime.now.midnight + 14.days
13.x 일 평가판에 해당하는 14 일의 아침입니다 (x는 남은 하루 중 일부입니다. 지금 정오이면 13.5 일 평가판입니다).
실제로 다음을 수행해야합니다.
DateTime.now.midnight + 15.days
14 일 자정에 도착합니다.
이런 이유로 저는 beginning_of_day
00:00:00이므로 항상 사용하는 것을 선호합니다 . 자정을 사용하면 오해의 소지가 있거나 오해를받을 수 있습니다.
자주 사용하는 경우이 gem을 설치하여 날짜 구문 분석을 개선하는 것이 좋습니다.
https://github.com/mojombo/chronic
require 'chronic'
Chronic.parse('this 0:00')
참고 URL : https://stackoverflow.com/questions/6327396/set-time-part-of-datetime-in-ruby
'development' 카테고리의 다른 글
ints 벡터의 인덱스로 사용하기 위해 strings 벡터에서 특정 요소의 위치를 얻는 방법은 무엇입니까? (0) | 2020.08.29 |
---|---|
Rails 3 커스텀 유효성 검사기는 어디에 저장해야합니까? (0) | 2020.08.29 |
ASP.NET MVC에서 비활성화 된 입력을 제출하려면 어떻게합니까? (0) | 2020.08.29 |
80 이외의 포트에서 수신하도록 Apache 구성 (0) | 2020.08.29 |
새로운 computeIfAbsent 함수를 어떻게 사용합니까? (0) | 2020.08.29 |