我需要一种简单的方法将日期时间戳转换为UTC(从服务器所在的任何时区)HOPEFULLY而不使用任何库.
我正在将应用程序从django 1.2迁移到1.4.
我有一个每日任务对象,其中包含应该完成任务的时间:
class DailyTask(models.Model):
time = models.TimeField()
last_completed = models.DateTimeField()
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
weekends = models.BooleanField()
def __unicode__(self):
return '%s' % (self.name)
class Meta:
db_table = u'dailytask'
ordering = ['name']
Run Code Online (Sandbox Code Playgroud)
为了检查今天是否仍需要完成任务,我有以下代码:
def getDueDailyTasks():
dueDailyTasks=[]
now = datetime.datetime.now()
try:
dailyTasks = DailyTask.objects.all()
except dailyTask.DoesNotExist:
return None
for dailyTask in dailyTasks:
timeDue = datetime.datetime(now.year,now.month,now.day,dailyTask.time.hour,dailyTask.time.minute,dailyTask.time.second)
if timeDue<now and timeDue>dailyTask.last_completed:
if dailyTask.weekends==False and now.weekday()>4:
pass
else:
dueDailyTasks.append({'id':dailyTask.id,
'due':timeDue,
'name': dailyTask.name,
'description':dailyTask.description})
return dueDailyTasks
Run Code Online (Sandbox Code Playgroud)
这在1.2下工作正常,但在1.4以下我得到错误:
can't compare offset-naive and offset-aware datetimes …Run Code Online (Sandbox Code Playgroud) 我想使用该TimeZoneInfo.FindSystemTimeZoneById(String)方法,但我不知道使用什么值作为输入?
我在哪里可以获得id所需的值列表FindSystemTimeZoneById?
为什么moment.js UTC总是显示错误的日期.例如来自chrome的开发者控制台:
moment(('07-18-2013')).utc().format("YYYY-MM-DD").toString()
// or
moment.utc(new Date('07-18-2013')).format("YYYY-MM-DD").toString()
Run Code Online (Sandbox Code Playgroud)
他们两人都会回归"2013-07-17",为什么它会回归17号而不是18号,这是传递给他们的.
但如果我使用没有utc的momentjs:
moment(new Date('07-18-2013')).format("YYYY-MM-DD").toString()
Run Code Online (Sandbox Code Playgroud)
我回来了"2013-07-18",这也是我在使用moment.js UTC时所期望的.
这是否意味着我们在使用moment.js UTC时无法获得正确的日期?
我正在尝试使用DateTimeOffset来传达任何时区的特定时刻.我无法弄清楚如何使用TimeZoneInfo来处理夏令时.
var dt = DateTime.UtcNow;
Console.WriteLine(dt.ToLocalTime());
var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero);
Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset));
Run Code Online (Sandbox Code Playgroud)
打印出:
6/2/2010 4:37:19 PM 6/2/2010 3:37:19 PM -06:00
我在中央时区,而且我们目前正处于夏令时.我想把第二行读到:
6/2/2010 4:37:19 PM -05:00
BaseUtcOffset显然不会根据DST进行更改.
如何使用正确的偏移值获得正确的时间?
我知道如何获得时区偏移,但我需要的是能够检测"美国/纽约"之类的东西.这甚至可能来自JavaScript还是我将不得不根据偏移量进行猜测?
我有一个Symfony2项目.我今天更新了我的PHP到5.5.7,从那以后,我得到了
Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in...
Run Code Online (Sandbox Code Playgroud)
我在php.ini中设置了默认时区
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = …Run Code Online (Sandbox Code Playgroud) 我需要使用Excel/VBA中包含的时区(从外部源)解析ISO8601日期/时间格式到正常的Excel日期.据我所知,Excel XP(我们正在使用的)没有内置的例程,所以我想我正在寻找一个用于解析的自定义VBA函数.
ISO8601的日期时间看起来像下列之一:
2011-01-01
2011-01-01T12:00:00Z
2011-01-01T12:00:00+05:00
2011-01-01T12:00:00-05:00
2011-01-01T12:00:00.05381+05:00
Run Code Online (Sandbox Code Playgroud) 我有一个'2009/05/13 19:19:30 -0400'形式的日期字符串.对于尾随时区规范,似乎以前版本的Python可能支持strptime中的%z格式标记,但2.6.x似乎已经删除了它.
将此字符串解析为日期时间对象的正确方法是什么?