ho risolto, avevo dimenticato un'inizializzazione per la scrittura di data ed ora, adesso sto cercando di implementare la scrittura su file ogni tot secondi invece che alla fine di ogni ciclo.
Qui il codice completo di modifiche, è ancora da "sgrezzare" ma in linea di principio non mi pare malaccio.
se qualcuno riuscisse ad aiutarmi ad implementare tale funzione mi darebbe una grandissima mano 
#include <Wire.h>
#include <LiquidCrystal.h>
#include <Adafruit_BMP085.h>
#include "RTClib.h"
#include "DHT.h"
#include <SPI.h>
#include <SD.h>
#define DHTPIN 8 //Conectamos el Sensor al pin digital 9
#define DHTTYPE DHT11
const int chipSelect=4;
DHT dht(DHTPIN, DHTTYPE);
RTC_Millis RTC;
char buffers[10];
long int time,Tempo;
Adafruit_BMP085 bmp;
LiquidCrystal lcd(2, 3, 5, 6, 7, 9);
float seaLevelPressure=103100;
void setup() {
Serial.begin(9600);
Wire.begin();
Tempo = millis();
RTC.begin(DateTime(__DATE__,__TIME__));
lcd.begin(16,2);// Indicamos medidas de LCD
dht.begin();
bmp.begin();
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
}
void loop() {
delay(1000);
time=millis();
DateTime now = RTC.now();
int h=dht.readHumidity(); // Lee la humedad
float t=dht.readTemperature();
float s=bmp.readTemperature();
float p=bmp.readPressure();
delay(2500);
///////////////////////////////////////////////////
lcd.clear();//Elimina todos los simbolos del LCD
lcd.setCursor(0,0);//Posiciona la primera letra despues del segmento 5 en linea 1
lcd.print("Umidita' relativa");
lcd.setCursor(6,1);
lcd.print(h);//Escribe la humedad
lcd.print(" %");
delay (2500);
///////////////////////////////////////////////////
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Temperatura ");
lcd.setCursor(6,1);
lcd.print((t+s)/2);//Escribe la temperatura
lcd.print(" C'");
delay (2500);
lcd.clear();
//////////////////////////////////////////////////
lcd.setCursor(3,0);
lcd.print("Pressione");
lcd.setCursor(6,1);
lcd.print(bmp.readPressure());
lcd.print("Pa");
delay(2500);
lcd.clear();
lcd.setCursor(3,0);
// Calculate altitude assuming 'standard' barometric
// pressure of 1031.25 millibar = 103125 Pascal
lcd.print("Altitudine");
lcd.setCursor(6,1);
lcd.print(bmp.readAltitude(seaLevelPressure));
lcd.print("m");
delay(2500);
lcd.clear();
///////////////////////////////////////
lcd.setCursor(0,0);
lcd.print("press. liv. mare");
lcd.setCursor(3,1);
lcd.print(seaLevelPressure);
lcd.print("Pa");
delay(2000);
lcd.clear();
////////////////////////////////////////////
if(time > (Tempo + 1000))
{
DateTime now = RTC.now();
sprintf(buffers, "%02d/%02d/%d", now.day(), now.month(), now.year());
String B = String(buffers);
lcd.setCursor(0,0);
lcd.print(B);
sprintf(buffers, "%02d:%02d:%02d", now.hour(), now.minute(),now.second());
B = String(buffers);
lcd.setCursor(0,1);
lcd.print(B);
Tempo = millis();
}
delay(1500);
lcd.clear();
File dataFile = SD.open("datalog.csv", FILE_WRITE);
//Scriviamo: TEMPERATURA - ORA:MINUTI:SECONDI
if (dataFile) {
dataFile.print("Temperatura ");
dataFile.print((t+s)/2);
dataFile.print("*C - ");
dataFile.print("Umidita' ");
dataFile.print(h);
dataFile.print("% - ");
dataFile.print("Pressione ");
dataFile.print(p);
dataFile.print("Pa - ");
dataFile.print(now.hour(), DEC);
dataFile.print(":");
dataFile.print(now.minute(), DEC);
dataFile.print(":");
dataFile.println(now.second(), DEC);
dataFile.print(" - ");
dataFile.print(now.day(), DEC);
dataFile.print("/");
dataFile.print(now.month(), DEC);
dataFile.print("/");
dataFile.print(now.year(), DEC);
//chiudiamo il file
dataFile.close();
}
}