Siento que esto es algo que he hecho miles de veces, por lo que no estoy seguro de por qué es tan difícil ahora. Creé un método que simplemente devuelve la fecha de hoy para el usuario en función de su desplazamiento UTC. Pero en lugar de devolver una cadena similar a una fecha, devuelve esta basuraC# DateTime to String Issue
"䙭/䙭/Ἰ뻱䙭"
Aquí está el código.
public string getToday(Context context)
{
var settings = PreferenceManager.GetDefaultSharedPreferences(context);
var offset = settings.GetInt("offset", -5);
var now = DateTime.UtcNow.AddHours(offset);
return now.ToShortDateString();
}
Cuando paso al código utilizando un punto de corte, desplazamiento y ahora ambos parecen correctos. ahora contiene partes de fecha válidas que parecen ser precisas. Algo sobre convertir ahora en una cadena parece ir terriblemente mal. También intenté:
return now.ToString("MM/dd/yyyy");
Mismo resultado. La parte extraña es el siguiente código funciona en otra actividad sin problema
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
var now = DateTime.UtcNow.AddHours(offset);
now.ToString("MM-dd-yyyy")
lo que la cultura es el código ejecutando bajo? – Oded
@Oded ¡Yo diría que no inglés! – Zenexer
@Zenexer - Yo diría que eso es un hecho. Mi comentario fue más un puntero al OP. – Oded