#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
Однако, мой инстинкт подсказывает, что это плохая идея, и есть лучшее решение основной проблемы, заключающейся в этом странном использовании даты.