InicioApuntes Y MonografiasFechas en Access con C#

Cualquier programador que utilice alguna vez Acces como base de datos tendrá problemas con las fechas; especialmente aquel que se encuentre con que la configuracion regional del equipo de desarrollo es diferente que la del equipo de producción.
Con esto entedemos, por ejemplo una computadora que tiene el formato "dia/mes/año" y de repente se topa con "mes/dia/año". Igual podrá ser cualquier formato como "año/mes/dia" u otro.
La solución que encontré tras meses de errores y trucos es indicar el mes con el nombre, por ejemplo, si la fecha es 10 de abril de 1981, indicarla así: "Apr/10/1981" ó "10/Apr/1981" ó "1981/Apr/10", el access la interpretará y entenderá que estamos hablando del 10 de abril de 1981.
DEsarrollé entonces una clase en C# para hace esta tarea, aqui la expongo:

using System;
namespace TyroDeveloperDLL
{
public class ISODates{
/// <summary>
/// Devuelve el formato ISO de fechas para MSAccess
/// </summary>
/// <param name="prmDate">Fecha a convertir</param>
/// <returns>Fecha ISO para MSAccess</returns>
/// <example>10 Abril 1980 10:25 a.m.= Apr-10-1980 10:25:00</example>
public static string MSAccessDate(DateTime prmDate){
string[] varMonth ={"Jan","Feb","Mar","Apr",
"May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
string varDay = "01";
string varHour = "00";
string varMin = "00";
string varSec = "00";
varDay = prmDate.Day.ToString();
if (varDay.Length == 1){
varDay = "0" + varDay;
}
varHour = prmDate.Hour.ToString();
if (varHour.Length == 1){
varHour = "0" + varHour;
}
varMin = prmDate.Minute.ToString();
if (varMin.Length == 1){
varMin = "0" + varMin;
}
varSec = prmDate.Second.ToString();
if (varSec.Length == 1){
varSec = "0" + varSec;
}
return (varMonth[prmDate.Month - 1] +
"-" + varDay + "-" + prmDate.Year.ToString() +
" " + varHour + ":" + varMin + ":" + varSec);
}
}
}

Espero que sea de utilidad...

Visita mi Blog:


Datos archivados del Taringa! original
0puntos
165visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

j
jgcastle🇦🇷
Usuario
Puntos0
Posts9
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.