Package com.independentsoft.graph

# Class DateTimeTimeZone

java.lang.Object
com.independentsoft.graph.DateTimeTimeZone

All Implemented Interfaces:
  `ICreatable`, `IUpdatable`

public class DateTimeTimeZone extends Object implements ICreatable, IUpdatable
Represents a date and time with time zone information in Microsoft Graph.

DateTimeTimeZone is used throughout Microsoft Graph to represent date/time values with explicit time zone information. This is particularly important for calendar events, reminders, and scheduled operations where time zone context matters.

The time zone name should follow the IANA Time Zone Database format (e.g., "America/New_York", "Europe/London", "UTC").

Example usage:

     // Create a date/time in specific time zone
     Date startDate = new Date();
     DateTimeTimeZone startTime = new DateTimeTimeZone(startDate, "America/Los_Angeles");

     // Use in a calendar event
     Event event = new Event();
     event.setStart(startTime);

     DateTimeTimeZone endTime = new DateTimeTimeZone(
         new Date(startDate.getTime() + 3600000), // +1 hour
         "America/Los_Angeles"
     );
     event.setEnd(endTime);

Since:
  1.0
See Also:
  dateTimeTimeZone resource type

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DateTimeTimeZone()`
  Default constructor.
  `DateTimeTimeZone​(JsonObject jsonObject)`
  Constructs a DateTimeTimeZone from a JSON object.
  `DateTimeTimeZone​(Date time)`
  Constructs a DateTimeTimeZone with the specified time in UTC.
  `DateTimeTimeZone​(Date time, String timeZoneName)`
  Constructs a DateTimeTimeZone with time and time zone.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Date`
  `getTime()`
  `String`
  `getTimeZoneName()`
  `void`
  `setTime​(Date time)`
  `void`
  `setTimeZoneName​(String timeZoneName)`
  `String`
  `toCreateJson()`
  Converts this object to its JSON representation for creation.
  `String`
  `toUpdateJson()`
  Converts this object to its JSON representation for update.
  `String`
  `toUpdateJson​(List<String> propertyNames)`
  Converts this object to JSON for update with specific properties.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DateTimeTimeZone

    public DateTimeTimeZone()
    Default constructor. Time zone defaults to UTC.

  - ### DateTimeTimeZone

    public DateTimeTimeZone​(Date time)
    Constructs a DateTimeTimeZone with the specified time in UTC.
    Parameters:
      `time` - The date and time

  - ### DateTimeTimeZone

    public DateTimeTimeZone​(Date time, String timeZoneName)
    Constructs a DateTimeTimeZone with time and time zone.
    Parameters:
      `time` - The date and time
      `timeZoneName` - The time zone name (IANA format, e.g., "America/New_York")

  - ### DateTimeTimeZone

    public DateTimeTimeZone​(JsonObject jsonObject)
    Constructs a DateTimeTimeZone from a JSON object.
    Parameters:
      `jsonObject` - The JSON object containing date/time data

- ## Method Details

  - ### toCreateJson

    public String toCreateJson()
    Description copied from interface: `ICreatable`
    Converts this object to its JSON representation for creation.

    This method generates a JSON string containing all properties needed to create a new instance of this resource in Microsoft Graph. Only properties appropriate for creation should be included (e.g., excluding read-only properties like ID, createdTime, etc.).

    Specified by:
      `toCreateJson` in interface `ICreatable`
    Returns:
      JSON string representation for creating this resource

  - ### toUpdateJson

    public String toUpdateJson()
    Description copied from interface: `IUpdatable`
    Converts this object to its JSON representation for update.

    This method generates a JSON string containing all modified properties that should be updated in Microsoft Graph. Only writeable properties with non-null values are typically included.

    Specified by:
      `toUpdateJson` in interface `IUpdatable`
    Returns:
      JSON string representation for updating this resource

  - ### toUpdateJson

    public String toUpdateJson​(List<String> propertyNames)
    Description copied from interface: `IUpdatable`
    Converts this object to JSON for update with specific properties.

    This method generates a JSON string containing only the specified properties. This enables partial updates where only certain fields need to be modified, reducing payload size and avoiding unintended changes to other properties.

    Specified by:
      `toUpdateJson` in interface `IUpdatable`
    Parameters:
      `propertyNames` - List of property names to include in the JSON. If null or empty, all modified properties are included.
    Returns:
      JSON string representation for updating specific properties

  - ### getTime

    public Date getTime()

  - ### setTime

    public void setTime​(Date time)

  - ### getTimeZoneName

    public String getTimeZoneName()

  - ### setTimeZoneName

    public void setTimeZoneName​(String timeZoneName)