1# Copyright 2015 Google Inc. All Rights Reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from __future__ import print_function, division, absolute_import, unicode_literals
16
17import datetime
18from glyphsLib.types import parse_datetime
19
20UFO_FORMAT = "%Y/%m/%d %H:%M:%S"
21
22
23def to_ufo_time(datetime_obj):
24    """Format a datetime object as specified for UFOs."""
25    return datetime_obj.strftime(UFO_FORMAT)
26
27
28def from_ufo_time(string):
29    """Parses a datetime as specified for UFOs into a datetime object."""
30    return datetime.datetime.strptime(string, UFO_FORMAT)
31
32
33def from_loose_ufo_time(string):
34    """Parses a datetime as specified for UFOs into a datetime object,
35    or as the Glyphs formet."""
36    try:
37        return from_ufo_time(string)
38    except ValueError:
39        return parse_datetime(string)
40