williamr@2: /* williamr@2: * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: This utility class provides static methods for conversions williamr@2: * between Symbian class types and XSD time-date type williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SEN_DATE_UTILS_H williamr@2: #define SEN_DATE_UTILS_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * This utility class provides static methods for conversions between Symbian williamr@2: * class types and XSD time-date type. williamr@2: * @lib SenUtils.lib williamr@2: * @since Series60 3.0 williamr@2: */ williamr@2: class SenDateUtils williamr@2: { williamr@2: public: williamr@2: enum { KXmlDateTimeMaxLength = 31 }; williamr@2: williamr@2: // New functions williamr@2: /** williamr@2: * Convert dateTime (from XML schema) to Symbian TTime. williamr@2: * A panic will occur if an attempt is made to set an invalid williamr@2: * value for any of the fields. williamr@2: * Panics: User 3 if illegal date. williamr@2: * Leave codes: KErrUnderflow Not enough data given or williamr@2: * negative values williamr@2: * KErrOverflow Too big values for e.g. month williamr@2: * KErrGeneral Invalid date structure williamr@2: * No check is made upon the validity of the year. williamr@2: * @since Series60 3.0 williamr@2: * @param aXmlDateTime source datetime to convert from williamr@2: * @return The returned time will be in UTC. williamr@2: */ williamr@2: IMPORT_C static TTime FromXmlDateTimeL(const TDesC8& aXmlDateTime); williamr@2: williamr@2: /** williamr@2: * Convert Symbian TTime to dateTime (from XML schema). williamr@2: * Leave codes: KErrOverflow target descriptor is less than williamr@2: * KXmlDateTimeMaxLength (25 bytes) williamr@2: * @since Series60 3.0 williamr@2: * @param aDest (UTF8) result will be written here. It must be at least williamr@2: * KXmlDateTimeMaxLength long. williamr@2: * @param TTime in UTC. williamr@2: */ williamr@2: IMPORT_C static void ToXmlDateTimeUtf8L(TDes8& aDest, williamr@2: const TTime& aSrc); williamr@2: williamr@2: /** williamr@2: * Convert Symbian TTime to dateTime (from XML schema). williamr@2: * Leave codes: KErrOverflow target descriptor is less than williamr@2: * KXmlDateTimeMaxLength (25 bytes) williamr@2: * @since Series60 5.0 williamr@2: * @param aDest (UTF8) result will be written here. It must be at least williamr@2: * KXmlDateTimeMaxLength long. williamr@2: * @param TTime in UTC. williamr@2: */ williamr@2: IMPORT_C static void ToXmlDateTimeUtf82L(TDes8& aDest, const TTime& aSrc) ; williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Hide default C++ constructor. williamr@2: */ williamr@2: SenDateUtils() { } williamr@2: williamr@2: /** williamr@2: * Prohibit copy constructor if not deriving from CBase. williamr@2: */ williamr@2: SenDateUtils( const SenDateUtils& ); williamr@2: williamr@2: /** williamr@2: * Prohibit assignment operator if not deriving from CBase. williamr@2: */ williamr@2: SenDateUtils& operator=( const SenDateUtils& ); williamr@2: }; williamr@2: williamr@2: #endif // SEN_DATE_UTILS_H williamr@2: // End of File