Foros del Web » Programando para Internet » ASPX (.net) »

Dudas sobre DateTime.ToString()

Estas en el tema de Dudas sobre DateTime.ToString() en el foro de ASPX (.net) en Foros del Web. Buenas tardes: Esto es básico pero yo no conozco nada de .NET aún. Estoy creando una plantilla para Windows Live Writer y desearía hacer lo ...
  #1 (permalink)  
Antiguo 27/03/2011, 13:38
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Pregunta Dudas sobre DateTime.ToString()

Buenas tardes:
Esto es básico pero yo no conozco nada de .NET aún. Estoy creando una plantilla para Windows Live Writer y desearía hacer lo siguiente:

1. Tomar un dato string que corresponde a una fecha con el formato dd/mm/aaaa (12/08/2011 por ejemplo)
2. Convertirlo a "Lunes 12 de Agosto del 2011"

El campo para almacenar la fecha lo he llamado fecha y es del tipo texto (string).

Se que si pongo <%=DateTime.Nox.ToString("f")%> obtendría el formato que busco pero con la hora actual de mi sistema, y yo necesito ingresar la fecha no necesariamente de mi sistema. He estado buscando y no he encontrado algún ejemplo sobre el tema.

Tal vez este omitiendo una conversión de datos pero no estoy seguro.

¿Alguien me podría orientar por favor?

Muchas gracias
Un saludo desde Lima, Perú
  #2 (permalink)  
Antiguo 29/03/2011, 07:48
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 6
Respuesta: Dudas sobre DateTime.ToString()

Es fácil.

DateTime.Now.ToString(); te va a imprimir la fecha actual (Imagino que no querías poner Nox, sino Now).

Necesitas para empezar un objeto DateTime con la fecha que tu necesitas, por ejemplo:

DateTime dt = DateTime.Parse("12/08/2011");

Con eso tienes un objeto DateTime llamado dt que contiene esa fecha introducida a través de una cadena.

Luego la puedes usar en plan

<%= dt.ToLongDateString()%> (vamos, no sé asp.net pero vaya, pasas el objeto a la vista y en vez de ToString usas ToLongDateString) el resultado es:

Lunes 12 de Agosto del 2011

Un saludo.
  #3 (permalink)  
Antiguo 29/03/2011, 15:17
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Dudas sobre DateTime.ToString()

Muchas gracias por la respuesta.

Mira este es el código que tengo en Windows Live Writer, en uno de sus plugins

titulo, url01, web y url02 son campos texto, fecha es un campo Date/Time (me muestra calendario y la hora también al momento de ingresar el dato)

Código:
<%
DateTime dt = DateTime.Parse("fecha");
%>
<%= dt.ToLongDateString()%>

<li style="border-bottom:1px solid navy;">
<a href="<%=url01%>" target="_blank"><%=titulo%></a><br>
<font size="1">
&nbsp;&nbsp;&nbsp;Publicado en <a href="<%=url02%>" target="_blank"><%=web%></a><br>
&nbsp;&nbsp;&nbsp;agregado el <%=DateTime.Now.ToString("f")%>
</font>

y este el error que me muestra

Código:
System.Reflection.TargetInvocationException: Se produjo una excepción en el destino de la invocación. ---> System.FormatException: La cadena no se reconoce como DateTime válido. Hay una palabra desconocida al inicio del índice 0.
   en System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   en System.DateTime.Parse(String s)
   en Template.Process(Object state, Object[] parameters)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   en System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   en System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   en System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   en DynamicTemplate.Compiler.CSharpLanguageProvider.InvokeAdapter.Invoke(Object state, Object[] values)
   en DynamicTemplate.DynamicTemplateContentSource.CreateContent(IWin32Window dialogOwner, String& newContent)
   en WindowsLive.Writer.PostEditor.ContentSources.ContentSourceManager.PerformInsertion(IContentSourceSite sourceSite, ContentSourceInfo contentSource)

Lo que busco es ingresar la fecha (no tanto la hora) en que la noticia que estoy publicando, ha sido publicada en la fuente original.

Todo esto esta en NET y yo sólo conozco ASP clásico.

Mil gracias por tu ayuda en verdad.

Un saludo desde Lima, Perú

Última edición por freesoftwarrior; 30/03/2011 a las 01:34
  #4 (permalink)  
Antiguo 30/03/2011, 06:32
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 6
Respuesta: Dudas sobre DateTime.ToString()

Has puesto "fecha" como cadena?

El error dice literalmente (leelos, te vendrá bien) que la cadena que has introducido no es una fecha váida. El formato si no me equivoco sería dd/mm/yyyy según tu región. (Imagino que en Perú es esa también).
  #5 (permalink)  
Antiguo 30/03/2011, 06:36
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Dudas sobre DateTime.ToString()

Hmmm si me había dado cuenta de eso luego luego leyendo el mensaje, pero ¿cómo hago eso en NET?, pues en ASP clásico si se como hacerlo pero en NET aún no he encontrado como....
  #6 (permalink)  
Antiguo 30/03/2011, 11:33
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 6
Respuesta: Dudas sobre DateTime.ToString()

Teniendo una cadena (string) con la fecha que quieres, algo en plan:

string fecha = "25/02/2010";
  #7 (permalink)  
Antiguo 30/03/2011, 12:12
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Dudas sobre DateTime.ToString()

Problema solucionado...... y gracias por el dato, me hiciste ver un detalle que no había reparado.
En Windows Live Writer se puede escoger, en el plugin, el tipo de dato. Bastó con seleccionar el tipo Date/Time y para publicarlo con formato bastó hacer esto

<%=fecha.ToString("f")%>

mil gracias por tu apoyo

Etiquetas: dudas, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:29.