Даты классов домена Grails

#date #grails

#Дата #grails

Вопрос:

По какой-то причине я хотел бы иметь возможность добавлять ссылочную дату, например 0-0-0, которая будет представлять «без даты». Есть какой-нибудь способ сделать это? И будет ли работать 0/0/0?

Ответ №1:

Если вы хотите представить «без даты», пожалуйста, сделайте это, явно установив для него значение «без даты», что в Groovy просто делается путем присвоения нулевого значения переменной date.

 Date someDate = new Date()
print someDate //prints current date
someDate = null
print someDate //prints null - you can test for that
  

Ответ №2:

Представляет ли дата 0/0/0 реальный момент (или интервал) во времени? Другими словами, если бы у вас был настольный календарь, который простирается бесконечно далеко в будущее и обратно в прошлое, смогли бы вы найти страницу, соответствующую 0/0/0? Если ответ отрицательный, то это недопустимое Date значение и, следовательно, оно не может быть присвоено Date переменной.

С другой стороны, если 0/0/0 представляет собой реальный момент времени, например, первый день первого года нашей эры, тогда может сработать что-то вроде этого

 import static java.util.Calendar.*
def cal = Calendar.instance
cal[YEAR] = -1900
cal[MONTH] = 0
cal[DAY_OF_MONTH] = 1
cal.clearTime()

Date dayZero =  cal.time
  

Однако, мой инстинкт подсказывает, что это плохая идея, и есть лучшее решение основной проблемы, заключающейся в этом странном использовании даты.