code: private static Literal getTimeLiteral(TimeValue value, RdfWriter rdfWriter) {
  		long year = value.getYear();
  
  		//Year normalization
  		if (year == 0 || (year < 0 && value.getPrecision() >= TimeValue.PREC_YEAR)) {
  			year--;
  		}
  
  		String timestamp = String.format("%04d-%02d-%02dT%02d:%02d:%02dZ",
  				year, value.getMonth(), value.getDay(),
  				value.getHour(), value.getMinute(), value.getSecond());
  		return rdfWriter.getLiteral(timestamp, RdfWriter.XSD_DATETIME);
  	}
docs: Returns the RDF literal to encode the time component of a given time
  value.
  <p>
  Times with limited precision are encoded using limited-precision XML
  Schema datatypes, such as gYear, if available. Wikidata encodes the year
  1BCE as 0000, while XML Schema, even in version 2, does not allow 0000
  and interprets -0001 as 1BCE. Thus all negative years must be shifted by
  1, but we only do this if the year is precise.
  
  @param value
  the value to convert
  @param rdfWriter
  the object to use for creating the literal
  @return the RDF literal