fipa_acl  1.4
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
fipa::acl::DateTime Struct Reference

#include <date_time.h>

Public Member Functions

 DateTime ()
 
std::string toString () const
 
base::Time toTime () const
 

Public Attributes

char relative
 
Time dateTime
 
char timezone
 

Static Public Attributes

static const std::string defaultFormat = "%Y-%m-%dT%H:%M:%S"
 

Detailed Description

Definition at line 19 of file date_time.h.

Constructor & Destructor Documentation

◆ DateTime()

fipa::acl::DateTime::DateTime ( )
inline

Definition at line 27 of file date_time.h.

27 : relative(0), timezone(0) {}

Member Function Documentation

◆ toString()

std::string fipa::acl::DateTime::toString ( ) const

convert to string

Definition at line 9 of file date_time.cpp.

10 {
11  char buffer[512];
12  // %Z missing so far
13  strftime(buffer,512,defaultFormat.c_str(), &dateTime);
14 
15  std::string formattedOutput;
16  if(relative != '\0')
17  {
18  formattedOutput += relative;
19  }
20  formattedOutput += std::string(buffer);
21  if(timezone != '\0')
22  {
23  formattedOutput += timezone;
24  }
25  return formattedOutput;
26 }
static const std::string defaultFormat
Definition: date_time.h:25

◆ toTime()

base::Time fipa::acl::DateTime::toTime ( ) const

Convert to base time Does not fully support the relative time and timezone yet

Returns
base time

Definition at line 28 of file date_time.cpp.

29 {
30  // Tell make to check whether daylight saving is in effect
31  // http://pubs.opengroup.org/onlinepubs/007904975/functions/strptime.html
32  Time timeTmp = dateTime;
33  timeTmp.tm_isdst = -1;
34  time_t time = mktime(dynamic_cast<std::tm*>(&timeTmp));
35  return base::Time::fromMilliseconds(time*static_cast<uint64_t>(base::Time::Milliseconds) + timeTmp.tm_msec);
36 }

Member Data Documentation

◆ dateTime

Time fipa::acl::DateTime::dateTime

Definition at line 22 of file date_time.h.

◆ defaultFormat

const std::string fipa::acl::DateTime::defaultFormat = "%Y-%m-%dT%H:%M:%S"
static

Definition at line 25 of file date_time.h.

◆ relative

char fipa::acl::DateTime::relative

Definition at line 21 of file date_time.h.

◆ timezone

char fipa::acl::DateTime::timezone

Definition at line 23 of file date_time.h.


The documentation for this struct was generated from the following files: