我正在构建一个用于事件通知的移动应用。我从各种网站上搜集事件。在我的应用程序中,我列出了客户位置附近的事件,并允许他们搜索可能位于世界任何地方的事件。由于事件日期在某个时区是固定的,因此无需在当地时间转换为应用客户端。
我的问题是我该如何存储这些日期?到目前为止,我已尝试将它们存储为UTC时间戳,但我在世界其他地方的应用用户看到他们的日期已经过了一天。
我的python代码如下。这将生成我随后存储在数据库中的UTC时间戳。 dateString是从网站上获取的日期。
return int(time.mktime(time.strptime(dateString, "%Y-%m-%d")))
在我的应用程序中,我将UTC时间戳转换为人类可读的格式:
/**
* @summary Format date string
*
* @param date {Integer} Unix time stamp
*
* @return date {String}
*/
function formatDate( date ) {
var m_names = new Array( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ),
d = new Date( date ),
curr_date = d.getUTCDate(),
curr_month = d.getUTCMonth(),
curr_year = d.getUTCFullYear();
return curr_date + "-" + m_names[ curr_month ] + "-" + curr_year;
}
我也不关心会议开始/结束的实际时间 - 只关注日期。从本质上讲,我需要一些关于如何存储/检索文字日期的指导,同时允许我将来有一些灵活性来处理查询下个月开始的所有事件。
我收到了一些很好的建议here关于如何在我当前的应用程序中实现这一点,但我现在正在重新设计平台,所以我想就如何继续进行一些建议。