Puede ver el código fuente para todo el conjunto de ejemplos de este artículo en Visual Basic o C# desde el repositorio docs de GitHub.You can view the source for the entire set of examples from this article in either Visual Basic or C# from the docs repository on GitHub.

Asignar un valor calculadoAssigning a computed value

Puede asignar el DateTime un valor de fecha y hora devuelto por una propiedad o método de objeto.You can assign the DateTime object a date and time value returned by a property or method.El ejemplo siguiente asigna la actual fecha y hora, la fecha actual de la hora Universal coordinada (UTC) y hora y la fecha actual a tres nuevas DateTime variables.The following example assigns the current date and time, the current Coordinated Universal Time (UTC) date and time, and the current date to three new DateTime variables.

Internamente, todos DateTime los valores se representan como el número de pasos (el número de intervalos de 100 nanosegundos) que han transcurrido desde 12:00:00 de la medianoche del 1 de enero de 0001.Internally, all DateTime values are represented as the number of ticks (the number of 100-nanosecond intervals) that have elapsed since 12:00:00 midnight, January 1, 0001.Real DateTime valor es independiente de la manera en que ese valor aparece cuando se muestra.The actual DateTime value is independent of the way in which that value appears when displayed.La apariencia de un DateTime valor es el resultado de una operación de formato que convierte un valor en su representación de cadena.The appearance of a DateTime value is the result of a formatting operation that converts a value to its string representation.

Usa el Parse o TryParse método para convertir una cadena de uno de los formatos de fecha y hora comunes usados por una referencia cultural para un DateTime valor.You use the Parse or TryParse method to convert a string from one of the common date and time formats used by a culture to a DateTime value.El ejemplo siguiente muestra cómo puede usar TryParse para convertir las cadenas de fecha en formatos específicos de referencias culturales diferentes para un DateTime valor.The following example shows how you can use TryParse to convert date strings in different culture-specific formats to a DateTime value.Cambia la referencia cultural actual a inglés (Gran Bretaña) y llama a la GetDateTimeFormats() método para generar una matriz de cadenas de fecha y hora.It changes the current culture to English (Great Britain) and calls the GetDateTimeFormats() method to generate an array of date and time strings.A continuación, pasa cada elemento de la matriz a la TryParse método.It then passes each element in the array to the TryParse method.El resultado del ejemplo se muestra que el método de análisis fue capaz de convertir correctamente cada una de las cadenas de hora y fecha específica de la referencia cultural.The output from the example shows the parsing method was able to successfully convert each of the culture-specific date and time strings.

Valores de fecha y horaDateTime values

Descripciones de los valores de hora en la DateTime tipo a menudo se expresan mediante el estándar de hora Universal coordinada (UTC).Descriptions of time values in the DateTime type are often expressed using the Coordinated Universal Time (UTC) standard.Hora Universal coordinada es el nombre reconocido internacionalmente para la hora del meridiano de Greenwich (GMT).Coordinated Universal Time is the internationally recognized name for Greenwich Mean Time (GMT).Hora Universal coordinada es el tiempo que se mide en la longitud de cero grados, el punto de origen de hora UTC.Coordinated Universal Time is the time as measured at zero degrees longitude, the UTC origin point.No es aplicable a la hora UTC del horario de verano.Daylight saving time is not applicable to UTC.

Hora local es relativa a una zona horaria determinada.Local time is relative to a particular time zone.Una zona horaria se asocia con un desplazamiento de zona horaria.A time zone is associated with a time zone offset.Un desplazamiento de zona horaria es el desplazamiento de la zona horaria que se mide en horas desde el punto de origen de hora UTC.A time zone offset is the displacement of the time zone measured in hours from the UTC origin point.Además, la hora local, opcionalmente, se ve afectada por el horario de verano, que agrega o resta un ajuste de intervalo de tiempo.In addition, local time is optionally affected by daylight saving time, which adds or subtracts a time interval adjustment.Hora local se calcula agregando el desplazamiento de zona horaria a UTC y ajuste al horario de verano si es necesario.Local time is calculated by adding the time zone offset to UTC and adjusting for daylight saving time if necessary.El desplazamiento de zona horaria en el punto de origen de hora UTC es cero.The time zone offset at the UTC origin point is zero.

Operaciones de fecha y horaDateTime operations

Cálculos que usen un DateTime estructura, tales como Add o Subtract, no modifica el valor de la estructura.A calculation using a DateTime structure, such as Add or Subtract, does not modify the value of the structure.En su lugar, devuelve un nuevo cálculo DateTime estructura cuyo valor es el resultado del cálculo.Instead, the calculation returns a new DateTime structure whose value is the result of the calculation.

Las operaciones de conversión entre zonas horarias (por ejemplo, entre la hora UTC y la hora local, o entre una zona horaria y otra) tienen el horario de verano en cuenta, pero no lo hacen las operaciones aritméticas y de comparación.Conversion operations between time zones (such as between UTC and local time, or between one time zone and another) take daylight saving time into account, but arithmetic and comparison operations do not.

El DateTime propia estructura ofrece compatibilidad limitada para la conversión de una zona horaria a otra.The DateTime structure itself offers limited support for converting from one time zone to another.Puede usar el ToLocalTime método para convertir la hora UTC hora local, o bien puede usar el ToUniversalTime método para convertir de hora local a UTC.You can use the ToLocalTime method to convert UTC to local time, or you can use the ToUniversalTime method to convert from local time to UTC.Sin embargo, un conjunto completo de métodos de conversión de zona horaria está disponible en el TimeZoneInfo clase.However, a full set of time zone conversion methods is available in the TimeZoneInfo class.Convertir la hora en cualquiera de las zonas horarias del mundo a la hora de cualquier otra zona horaria mediante estos métodos.You convert the time in any one of the world's time zones to the time in any other time zone using these methods.

Las operaciones de los miembros de la DateTime tener tipo en los detalles de la cuenta, como los años bisiestos y el número de días al mes.Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.

La biblioteca de clases de .NET Framework incluye una serie de clases de calendario, todos los cuales se derivan los Calendar clase.The .NET Framework Class Library includes a number of calendar classes, all of which are derived from the Calendar class.Son estos:They are:

Debe asegurarse de que la rutina que restaura el DateTime valores no perder datos o producir una excepción independientemente de la técnica que elija.You must ensure that the routine that restores the DateTime values doesn't lose data or throw an exception regardless of which technique you choose.DateTime en caso de los valores de ida y vuelta.DateTime values should round-trip.Es decir, el valor original y el valor restaurado deben ser el mismo.That is, the original value and the restored value should be the same.Y si la versión original DateTime valor representa un instante de tiempo único, debe identificar el momento de tiempo cuando se restaura.And if the original DateTime value represents a single instant of time, it should identify the same moment of time when it's restored.

Si la fecha representa un único momento de tiempo, asegúrese de que representa el mismo momento en el tiempo cuando se restaura, incluso en una zona horaria diferente.If the date represents a single moment of time, ensure that it represents the same moment in time when it's restored, even on a different time zone.Convertir el DateTime valor en hora Universal coordinada (UTC) antes de guardarlo.Convert the DateTime value to Coordinated Universal Time (UTC) before saving it.También se puede serializar el valor junto con información de zona horaria.You can also serialize the value along with time zone information.Para obtener más información acerca de este enfoque, consulte datos de serialización de fecha y hora y zona horaria.For more information about this approach, see Serializing DateTime and time zone data.

El error más común que se realizan cuando se conserve DateTime valores como cadenas es depender de las convenciones de formato de la predeterminada o la referencia cultural actual.The most common error made when persisting DateTime values as strings is to rely on the formatting conventions of the default or current culture.Producir problemas si es diferente al guardar y restaurar las cadenas de la referencia cultural actual.Problems arise if the current culture is different when saving and restoring the strings.El ejemplo siguiente ilustra estos problemas.The following example illustrates these problems.Guarda las cinco fechas mediante las convenciones de formato de la referencia cultural actual, que en este caso es inglés (Estados Unidos).It saves five dates using the formatting conventions of the current culture, which in this case is English (United States).Restaura las fechas mediante las convenciones de formato de una referencia cultural diferente, que en este caso es inglés (Gran Bretaña).It restores the dates using the formatting conventions of a different culture, which in this case is English (Great Britain).Dado que las convenciones de formato de las dos referencias culturales son diferentes, dos de las fechas no se puede restaurar y las fechas de tres restantes se interpretan incorrectamente.Because the formatting conventions of the two cultures are different, two of the dates can't be restored, and the remaining three dates are interpreted incorrectly.Además, si los valores de fecha y hora originales representan momentos solo en el tiempo, restaurada veces son incorrectas porque se pierde la información de zona horaria.Also, if the original date and time values represent single moments in time, the restored times are incorrect because time zone information is lost.

Si los valores representan solo instantes de tiempo, convertirlos de la hora local a UTC mediante una llamada a la ToUniversalTime método.If the values represent single moments of time, convert them from the local time to UTC by calling the ToUniversalTime method.

Si el DateTime valor representa un único momento en el tiempo, se convierte a la hora UTC a la hora local mediante una llamada a la ToLocalTime método.If the DateTime value represents a single moment in time, convert it from UTC to the local time by calling the ToLocalTime method.

El ejemplo siguiente conserva una matriz de DateTime valores enteros en un sistema en los Estados Unidos. de EE. UU.The following example persists an array of DateTime values as integers on a system in the U.S. Pacific Time zone.Se restaura en un sistema en la zona UTC.It restores it on a system in the UTC zone.El archivo que contiene los números enteros incluye un Int32 valor que indica el número total de Int64 valores que siguen inmediatamente a él.The file that contains the integers includes an Int32 value that indicates the total number of Int64 values that immediately follow it.

El ejemplo anterior no incluye información de hora.The previous example doesn't include time information.Si un DateTime valor representa un momento dado y se expresa como una hora local, se convierte de hora local a UTC antes de serializarlo mediante una llamada a la ToUniversalTime método.If a DateTime value represents a moment in time and is expressed as a local time, convert it from local time to UTC before serializing it by calling the ToUniversalTime method.Una vez deserializarlo, convertirlo a la hora UTC a la hora local mediante una llamada a la ToLocalTime método.After you deserialize it, convert it from UTC to local time by calling the ToLocalTime method.En el ejemplo siguiente se usa el BinaryFormatter clase para serializar DateTime datos en un sistema en los Estados Unidos. Zona horaria estándar del Pacífico y deserializarlo en un sistema en los Estados Unidos. Zona estándar central.The following example uses the BinaryFormatter class to serialize DateTime data on a system in the U.S. Pacific Standard Time zone and to deserialize it on a system in the U.S. Central Standard zone.

Namespace DateTimeExtensions
<Serializable> Public Structure DateWithTimeZone
Private tz As TimeZoneInfo
Private dt As DateTime
Public Sub New(dateValue As DateTime, timeZone As TimeZoneInfo)
dt = dateValue
If timeZone Is Nothing Then
tz = TimeZoneInfo.Local
Else
tz = timeZone
End If
End Sub
Public Property TimeZone As TimeZoneInfo
Get
Return tz
End Get
Set
tz = Value
End Set
End Property
Public Property DateTime As Date
Get
Return dt
End Get
Set
dt = Value
End Set
End Property
End Structure
End Namespace

Importante

El DateWithTimeZone estructura se usa en los dos ejemplos siguientes, que serializar y deserializar una matriz de DateWithTimeZone objetos.The DateWithTimeZone structure is used in the next two examples, which serialize and deserialize an array of DateWithTimeZone objects.Puede ver el código fuente para todo el conjunto de ejemplos de este artículo en Visual Basic o C# desde el repositorio docs de GitHub.You can view the source for the entire set of examples from this article in either Visual Basic or C# from the docs repository on GitHub.

Puede agregar o restar un intervalo de tiempo de un DateTime objeto.You can add or subtract a time interval from a DateTime object.Intervalos de tiempo pueden ser positivo o negativo, y puede expresarse en unidades como tics, segundos, o como un TimeSpan objeto.Time intervals can be negative or positive, and they can be expressed in units such as ticks, seconds, or as a TimeSpan object.

Comparación de igualdad dentro de la toleranciaComparing for equality within tolerance

Comparaciones de igualdad para DateTime valores son exactos.Equality comparisons for DateTime values are exact.Esto significa que dos valores se deben expresar como el mismo número de pasos que se consideran iguales.That means two values must be expressed as the same number of ticks to be considered equal.Que la precisión a menudo es innecesarios o incluso incorrecto para muchas aplicaciones.That precision is often unecessary or even incorrect for many applications.A menudo, desea probar si DateTime son objetos aproximadamente igual.Often, you want to test if DateTime objects are roughly equal.

Cuando sólo una vez se pasa desde .NET Framework a COM, se realiza un procesamiento especial convierte la hora en el formato utilizado por COM.When only a time is passed from the .NET Framework to COM, special processing is performed that converts the time to the format used by COM.Cuando sólo una vez se pasa desde COM a .NET Framework, no se realiza ningún procesamiento especial, ya que podría dañar legítimas fechas y horas en o antes del 30 de diciembre de 1899.When only a time is passed from COM to the .NET Framework, no special processing is performed because that would corrupt legitimate dates and times on or before December 30, 1899.Si una fecha inicia su de ida y vuelta desde COM, .NET Framework y COM conservan la fecha.If a date starts its round-trip from COM, the .NET Framework and COM preserve the date.

Inicializa una nueva instancia de la estructura DateTime en el número de pasos y hora universal coordinada (UTC) u hora local especificados.Initializes a new instance of the DateTime structure to a specified number of ticks and to Coordinated Universal Time (UTC) or local time.

Obtiene un objeto DateTime que se establece en la fecha y hora actual de este equipo, expresada como hora local.Gets a DateTime object that is set to the current date and time on this computer, expressed as the local time.

Obtiene un objeto DateTime que se establece en la fecha y hora actual del equipo, expresada como hora universal coordinada (UTC).Gets a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC).

Devuelve un nuevo objeto DateTime que suma el número especificado de milisegundos al valor de esta instancia.Returns a new DateTime that adds the specified number of milliseconds to the value of this instance.

Compara dos instancias de DateTime y devuelve un entero que indica si la primera instancia es anterior, igual o posterior a la segunda instancia.Compares two instances of DateTime and returns an integer that indicates whether the first instance is earlier than, the same as, or later than the second instance.

Convierte el valor de esta instancia en todas las representaciones de cadena admitidas por los especificadores de formato de fecha y hora estándar.Converts the value of this instance to all the string representations supported by the standard date and time format specifiers.

Indica si esta instancia de DateTime está dentro del intervalo del horario de verano de la zona horaria actual.Indicates whether this instance of DateTime is within the daylight saving time range for the current time zone.

Convierte la representación de cadena para una fecha y hora en su DateTime equivalente, usando las convenciones de la referencia cultural de subproceso especificada.Converts the string representation of a date and time to its DateTime equivalent by using the conventions of the current thread culture.

Crea un nuevo objeto DateTime que tiene el mismo número de pasos que el objeto DateTime especificado, pero en hora local, en hora universal coordinada (UTC) o en ninguna de ellas, según indique el valor de DateTimeKind especificado.Creates a new DateTime object that has the same number of ticks as the specified DateTime, but is designated as either local time, Coordinated Universal Time (UTC), or neither, as indicated by the specified DateTimeKind value.

Convierte el valor del objeto DateTime actual en su representación de cadena de hora larga equivalente.Converts the value of the current DateTime object to its equivalent long time string representation.

Convierte el valor del objeto DateTime actual en su representación de cadena de hora corta equivalente.Converts the value of the current DateTime object to its equivalent short time string representation.

Convierte el valor del objeto DateTime actual en su representación de cadena equivalente mediante las convenciones de formato de la referencia cultural actual.Converts the value of the current DateTime object to its equivalent string representation using the formatting conventions of the current culture.

Operadores

Agrega un intervalo de tiempo especificado a una fecha y hora especificadas, generando una fecha y hora nuevas.Adds a specified time interval to a specified date and time, yielding a new date and time.

Determina si un DateTime especificado representa una fecha y hora que es el igual o posterior a otro DateTime especificado.Determines whether one specified DateTime represents a date and time that is the same as or later than another specified DateTime.

Determina si un DateTime especificado representa una fecha y hora que es el igual o anterior a otro DateTime especificado.Determines whether one specified DateTime represents a date and time that is the same as or earlier than another specified DateTime.

Resta un intervalo de tiempo especificado de un valor de fecha y hora especificado y devuelve un nuevo valor de fecha y hora.Subtracts a specified time interval from a specified date and time and returns a new date and time.

Resta una fecha y hora especificadas de otra fecha y hora especificadas y devuelve un intervalo de tiempo.Subtracts a specified date and time from another specified date and time and returns a time interval.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.

No se admite esta conversión.This conversion is not supported.Cualquier intento de usar este método produce una excepción InvalidCastException.Attempting to use this method throws an InvalidCastException.