def output_date(datetime, output_date: :abbr, output_date_length: :month,
			**opts)
			lang=opts[:lang]||:en
			year,month,day,time=split_date(datetime)
			month=nil if output_date_length==:year
			day=nil if output_date_length==:month
			time=nil if output_date_length==:day
			return Formatter.localize({en: 'Present', fr: 'Présent'},**opts) if datetime==:now
			r=year
			case output_date
			when :num
				month.nil? ? (return r) : r+="-"+month
				day.nil? ? (return r) : r+="-"+day
				time.nil? ? (return r) : r+="T"+time
			when :abbr,:string
				return r if month.nil?
				month_name=Months_names[lang][month.to_i]
				month_name=abbr_month(month_name) if output_date==:abbr
				r=month_name+" "+r
				return r if day.nil?
				r=day+" "+r
				return r if time.nil?
				r+=" "+time
			end
			r
		end
def output_date(datetime, output_date: :abbr, output_date_length: :month,
			**opts)
			lang=opts[:lang]||:en
			year,month,day,time=split_date(datetime)
			month=nil if output_date_length==:year
			day=nil if output_date_length==:month
			time=nil if output_date_length==:day
			return Formatter.localize({en: 'Present', fr: 'Présent'},**opts) if datetime==:now
			r=year
			case output_date
			when :num
				month.nil? ? (return r) : r+="-"+month
				day.nil? ? (return r) : r+="-"+day
				time.nil? ? (return r) : r+="T"+time
			when :abbr,:string
				return r if month.nil?
				month_name=Months_names[lang][month.to_i]
				month_name=abbr_month(month_name) if output_date==:abbr
				r=month_name+" "+r
				return r if day.nil?
				r=day+" "+r
				return r if time.nil?
				r+=" "+time
			end
			r
		end
output_date_length: granularity :year/:month/:day/:all
 output_date: :num, :string, :abbr