Altova XMLSpy 2023 Enterprise Edition

此类可用于处理具有日期和时间类型(例如xs:dateTime)的XML特性或元素。

 

构造函数

Name

描述

DateTime()

DateTime类的新实例初始化为0001年1月1日午夜12:00:00。

DateTime(__int64 value, short timezone)

DateTime类的新实例进行初始化。value参数表示自0001年1月1日午夜12:00:00以来所经历的刻度数(以100纳秒为间隔)。

DateTime(int year, unsigned char month, unsigned char day, unsigned char hour, unsigned char minute, double second)

DateTime类的新实例初始化为作为参数提供的年、月、日、小时、分钟和秒。

 

DateTime(int year, unsigned char month, unsigned char day, unsigned char hour, unsigned char minute, double second, short timezone)

DateTime类的新实例初始化为作为参数提供的年、月、日、小时、分钟、秒和时区。时区用分钟表示,可以是正数或负数。例如,“UTC-01:00”时区表示为“-60”。

 

 

方法

Name

描述

unsigned char Day() const

返回当前DateTime对象的日期。返回值为1到31。

int DayOfYear() const

返回当前DateTime对象的一年中的哪一天。返回值为1到366。

bool HasTimezone() const

如果当前DateTime对象具有定义的时区,则返回true;否则返回false

unsigned char Hour() const

返回当前DateTime对象的小时数。返回值为0到23。

static bool IsLeapYear(int year)

如果DateTime类的年份是闰年,则返回true;否则返回false

unsigned char Minute() const

返回当前DateTime对象的分钟数。返回值为0到59。

unsigned char Month() const

返回当前DateTime对象的月份。返回值为1到12。

__int64 NormalizedValue() const

返回DateTime对象的值并用协调世界时(UTC)表示。

double Second() const

返回当前DateTime对象的秒数。返回值为0到59。

void SetTimezone(short tz)

将当前DateTime对象的时区设为作为参数提供的时区值。tz参数以分钟为单位表示,可以是正数或负数。

short Timezone() const

返回当前DateTime对象的时区(以分钟为单位)。在使用此方法之前,请通过调用HasTimezone()方法来确保对象确实具有时区。

__int64 Value() const

返回DateTime对象的值,用自0001年1月1日午夜12:00:00以来所经历的刻度数(以100纳秒为间隔)表示。

int Weekday() const

返回当前DateTime对象的天数(一周的某天),用整数表示。返回值为0到6,其中0表示周一(ISO-8601)。

int Weeknumber() const

返回当前DateTime对象的周数(一年的第几周)。这些返回值符合ISO-8601标准。

int WeekOfMonth() const

返回当前DateTime对象的周数(一个月的第几周)。这些返回值符合ISO-8601标准。

int Year() const

返回当前DateTime对象的年份。

 

示例

void Example()
{
  // initialize a new DateTime instance to 12:00:00 midnight, January 1st, 0001
  altova::DateTime dt1 = altova::DateTime();
 
  // initialize a new DateTime instance using the year, month, day, hour, minute, and second
  altova::DateTime dt2 = altova::DateTime(2015, 11, 10, 9, 8, 7);
 
  // initialize a new DateTime instance using the year, month, day, hour, minute, second, and UTC +01:00 timezone
  altova::DateTime dt = altova::DateTime(2015, 11, 22, 13, 53, 7, 60);
   
  // Get the value of this DateTime object
  std::cout << "The number of ticks of the DateTime object is: " << dt.Value() << std::endl;
 
  // Get the year
  cout << "The year is: " << dt.Year() << endl;
  // Get the month  
  cout << "The month is: " << (int)dt.Month() << endl;
  // Get the day of the month
  cout << "The day of the month is: " << (int) dt.Day() << endl;
  // Get the day of the year
  cout << "The day of the year is: " << dt.DayOfYear() << endl;
  // Get the hour
  cout << "The hour is: " << (int) dt.Hour() << endl;
  // Get the minute
  cout << "The minute is: " << (int) dt.Minute() << endl;
  // Get the second
  cout << "The second is: " << dt.Second() << endl;
  // Get the weekday
  cout << "The weekday is: " << dt.Weekday() << endl;
  // Get the week number
  cout << "The week of year is: " << dt.Weeknumber() << endl;
  // Get the week in month
  cout << "The week of month is: " << dt.WeekOfMonth() << endl;
 
  // Check whether a DateTime instance has a timezone
  if (dt.HasTimezone() == TRUE)
  {      
    // output the value of the Timezone
    cout << "The timezone is: " << dt.Timezone() << endl;
  }
  else
  {
    cout << "No timezone has been defined." << endl;
  }
 
  // Construct a DateTime object with a timezone UTC+01:00 (Vienna)
  altova::DateTime vienna_dt = DateTime(2015, 11, 23, 14, 30, 59, +60);
  // Output the result in readable format
  cout << "The Vienna time: "
      << (int) vienna_dt.Month()
      << "-" << (int) vienna_dt.Day()
      << " " << (int) vienna_dt.Hour()
      << ":" << (int) vienna_dt.Minute()
      << ":" << (int) vienna_dt.Second()
      << endl;
 
  // Convert the value to UTC time
  DateTime utc_dt = DateTime(vienna_dt.NormalizedValue());
  // Output the result in readable format
  cout << "The UTC time:    "
    << (int) utc_dt.Month()
    << "-" << (int) utc_dt.Day()
    << " " << (int) utc_dt.Hour()
    << ":" << (int) utc_dt.Minute()
    << ":" << (int) utc_dt.Second()
    << endl;
 
  // Check if a year is a leap year
  int year = 2016;
  if( altova::DateTime::IsLeapYear(year) )
  { cout << year << " is a leap year" << endl; }
  else
  { cout << year << " is not a leap year" << endl; }  
}

© 2017-2023 Altova GmbH