File indexing completed on 2024-04-28 05:42:09
0001 /* 0002 * Port for usage with qt-framework and development for kdesvn 0003 * Copyright (C) 2005-2009 by Rajko Albrecht (ral@alwins-world.de) 0004 * https://kde.org/applications/development/org.kde.kdesvn 0005 */ 0006 /* 0007 * ==================================================================== 0008 * Copyright (c) 2002-2005 The RapidSvn Group. All rights reserved. 0009 * dev@rapidsvn.tigris.org 0010 * 0011 * This library is free software; you can redistribute it and/or 0012 * modify it under the terms of the GNU Lesser General Public 0013 * License as published by the Free Software Foundation; either 0014 * version 2.1 of the License, or (at your option) any later version. 0015 * 0016 * This library is distributed in the hope that it will be useful, 0017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0019 * Lesser General Public License for more details. 0020 * 0021 * You should have received a copy of the GNU Lesser General Public 0022 * License along with this library (in the file LGPL.txt); if not, 0023 * write to the Free Software Foundation, Inc., 51 Franklin St, 0024 * Fifth Floor, Boston, MA 02110-1301 USA 0025 * 0026 * This software consists of voluntary contributions made by many 0027 * individuals. For exact contribution history, see the revision 0028 * history and logs, available at http://rapidsvn.tigris.org/. 0029 * ==================================================================== 0030 */ 0031 0032 #include "datetime.h" 0033 0034 // apr 0035 #include <apr_date.h> 0036 0037 namespace svn 0038 { 0039 DateTime::DateTime() 0040 : m_time() 0041 { 0042 } 0043 0044 DateTime::DateTime(const apr_time_t time) 0045 : m_time() 0046 { 0047 setAprTime(time); 0048 } 0049 0050 DateTime::DateTime(const QDateTime &dt) 0051 : m_time(dt) 0052 { 0053 } 0054 0055 DateTime::DateTime(const QString &dt) 0056 { 0057 SetRFC822Date(dt.toUtf8().constData()); 0058 } 0059 0060 apr_time_t DateTime::GetAPRTimeT() const 0061 { 0062 apr_time_t aTime; 0063 apr_time_ansi_put(&aTime, m_time.toSecsSinceEpoch()); 0064 return aTime; 0065 } 0066 0067 bool DateTime::SetRFC822Date(const char *date) 0068 { 0069 apr_time_t aTime = apr_date_parse_rfc(date); 0070 setAprTime(aTime); 0071 return IsValid(); 0072 } 0073 0074 void DateTime::setAprTime(apr_time_t aTime) 0075 { 0076 if (aTime < 0) { 0077 m_time = QDateTime(); 0078 } else { 0079 m_time = QDateTime::fromMSecsSinceEpoch(aTime / 1000); // microsec -> millisec 0080 } 0081 m_time.setTimeSpec(Qt::LocalTime); 0082 } 0083 0084 QString DateTime::toString(const QString &format) const 0085 { 0086 return m_time.toString(format); 0087 } 0088 0089 QString DateTime::toString(Qt::DateFormat f) const 0090 { 0091 return m_time.toString(f); 0092 } 0093 } // namespace svn