我有一个像这样的字符串:
2018-03-21T08:15:00+01:00
Run Code Online (Sandbox Code Playgroud)
并想知道在 Spark 中解析时如何保留时区/从 UTC 偏移。
Seq("2018-03-21T08:15:00+01:00").toDF.select('value, to_timestamp('value, "yyy-MM-ddTHH:mm:ss")).show(false)
Run Code Online (Sandbox Code Playgroud)
不幸的是只产生null. 即使我省略了移位的格式字符串也只返回null.
timezone timestamp timezone-offset apache-spark apache-spark-sql
我需要用 Java 解析日期。我有字符串值2018-05-15 09:32:51.550082 +3:00,我需要将其解析为日期时间。我尝试解析为ZonedDateTime,但在索引 10 处出现错误。尝试使用DateTimeFormatter解析器 'yyyy-MM-dd HH:mm:ss.SSSSSS Z'+3:00进行解析并在索引 26 处出现错误。显然我的 UTC 偏移量无法解析. 我怎样才能做到这一点?
对于给定的日期字符串,例如2009-01-01T12:00:00+0100我想要 UTC 日期时间对象。
from datetime import datetime
datetime.strptime("2013-03-21T14:19:42+0100", "%Y-%m-%dT%H:%M:%S%z")
Run Code Online (Sandbox Code Playgroud)
返回
datetime.datetime(2013, 3, 21, 14, 19, 42, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
Run Code Online (Sandbox Code Playgroud)
我不能相信这是在没有任何方法datetime或pandas用于应用时区相关的偏移,日期时间和返回平原UTC日期时间。
如何应用tzinfo偏移量/增量,以便生成的时区是纯 UTC ( tzinfo=None)?
php 中的时区是这样工作的https://www.gsp.com/support/virtual/admin/unix/tz/gmt/
当Etc/GMT+11它真正命名它时GMT-11
当Etc/GMT-11它真正命名它时GMT+11
为什么?这是什么意思Etc/GMT?
我在 PHP 中发现它,它是 PHP 中的错误还是无处不在?
我使用矩库使用以下代码获取时区
console.log(moment.tz.names())
Run Code Online (Sandbox Code Playgroud)
这给了我以下格式的结果
0: "Africa/Abidjan"
1: "Africa/Accra"
2: "Africa/Addis_Ababa"
3: "Africa/Algiers"
4: "Africa/Asmara"
5: "Africa/Asmera"
6: "Africa/Bamako"
Run Code Online (Sandbox Code Playgroud)
我只需要得到类似的缩写
力矩可以提供这样的灵活性吗?我还需要偏移量吗?
谢谢你!!!
问题:为什么 Colab 的时区与本地时区不同?
背景::我住在美国。但Colab时间(我指定的是美国时区)与当地时间有五个小时的时差。
代码:
!rm /etc/localtime
!ln -s /usr/share/zoneinfo/US /etc/localtime # the time should be around 11:20
!date
Run Code Online (Sandbox Code Playgroud)
结果: 2019 年 8 月 7 日星期三 16:20:40 世界标准时间
我有来自多个时区的用户,并以 UTC 格式将时间存储在数据库中。单独遇到时间部分的问题。
按如下方式存储用户本周的工作时间。
| ID | 用户身份 | 天 | 时间 | 时间结束 |
|---|---|---|---|---|
| 1 | 1 | 0 | 10:00 | 18:00 |
| 2 | 1 | 1 | 10:00 | 18:00 |
| 3 | 1 | 2 | 10:00 | 18:00 |
| 4 | 1 | 3 | 10:00 | 18:00 |
| 5 | 1 | 4 | 10:00 | 18:00 |
日,0 表示星期日,1 表示星期一,...
此处,时间以 UTC 格式存储。UI 中的时间将根据浏览器时区进行转换。由于这里不需要日期部分,因此它在这里引起了问题。
例如,假设用户在 UI 中选择上午 7 点到下午 7 点,时间将转换为 UTC,即今天 15:00 到明天 02:00。因此,在数据库中,时间存储为
| ID | 用户身份 | 天 | 时间 | 时间结束 |
|---|---|---|---|---|
| 1 | 1 | 0 | 15:00 | 02:00 |
| 2 | 1 | 1 | 15:00 | 02:00 |
| 3 | 1 | 2 | 15:00 | 02:00 |
| 4 | 1 | 3 | 15:00 | 02:00 |
| 5 | 1 | 4 … |
我有一个程序,用于java.util.TimeZone生成各种时区的GMT偏移量.最近有人指出,阿根廷布宜诺斯艾利斯的其中一个时区已经过了一个小时.
我编写了一个简单的java程序来查看java TimeZone类作为偏移量给出的内容.事实证明它为布宜诺斯艾利斯提供了错误的价值,但所有其他时区(我们使用的)都没问题.我认为问题可能是运行代码的机器上的java版本.一台机器(v1.6.0_22)给出正确的值,另一台机器(v1.5.0)给出不正确的值.有没有其他人有这样的问题,或对偏移值的差异有不同的探索?这是我使用的测试程序:
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class TZTest {
public static void main(String[] args) {
System.out.println("Java version = "+ System.getProperty("java.version"));
Calendar now = Calendar.getInstance();
TimeZone timeZone = now.getTimeZone();
System.out.println("Current System Time is: " + new Date(System.currentTimeMillis()));
System.out.println("Current Calendar Time is: " + new Date(now.getTimeInMillis()));
System.out.println("Current TimeZone is: \"" + timeZone.getDisplayName() + "\": ID = " + timeZone.getID());
//One ID for the timezone in question
String id = "America/Argentina/Buenos_Aires";
TimeZone tz = TimeZone.getTimeZone(id);
System.out.println("\ntimeZone.getTimeZone(ID) …Run Code Online (Sandbox Code Playgroud) 我有一个timzeone名称作为输入,例如' Europe/Istanbul'作为字符串.
如何从GMT(基于当前时间)获得当前偏移量,即+2作为输出?
PS,我正在使用DateTime :: TimeZone,如果这可能会有所帮助
我意识到这是一个常见问题,但是我找不到任何指出使用/存储用户时区偏移量的缺点的帖子。这不是更好,更有效的方法吗?
时区长的下拉列表不是用户友好的,而且大多数此类列表并没有囊括所有城市。他们还要求用户指定他们的时区。我觉得仅检测它可能会好得多。就我而言,我的应用程序是具有Reach前端的ASP.NET Core应用程序,通过JavaScript捕获用户的时区偏移非常容易。
为什么存储用户时区的偏移量不是一个好主意?
timezone-offset ×10
timezone ×8
datetime ×2
java ×2
javascript ×2
apache-spark ×1
asp.net ×1
date ×1
localization ×1
momentjs ×1
pandas ×1
parsing ×1
perl ×1
python ×1
reactjs ×1
time ×1
timestamp ×1
utc ×1