希伯来语/犹太日期转换

Posted

技术标签:

【中文标题】希伯来语/犹太日期转换【英文标题】:Hebrew/Jewish date conversion 【发布时间】:2011-09-23 21:45:16 【问题描述】:

我想将公历日期(我们通常在美国使用的日期)转换为希伯来(犹太)日期。我将 Adob​​e Flash CS5 用于 Adob​​e AIR 应用程序。是否已经在 ActionScript 3.0 上开发了一些代码?

经过一段时间的研究,我发现在 Visual Studio 上创建的 Windows 应用程序具有满足这种需求的内置功能。有什么方法可以在 Windows 窗体或 AIR 中调用函数吗?

【问题讨论】:

【参考方案1】:

我不确定 adobe 产品,但由于您的问题是用 C# 标记的(这对我来说很奇怪),我将提供一个 C# ex。非常有效的方法:

/// <summary>
/// Converts a gregorian date to its hebrew date string representation,
/// using custom DateTime format string.
/// </summary>
/// <param name="value">The <see cref="DateTime"/> value to convert.</param>
/// <param name="format">A standard or custom date-time format string.</param>
public static string ToJewishDateString(this DateTime value, string format)

  var ci = CultureInfo.CreateSpecificCulture("he-IL");
  ci.DateTimeFormat.Calendar = new HebrewCalendar();      
  return value.ToString(format, ci);

【讨论】:

正是我想要的。户田。【参考方案2】:

不幸的是,在四处搜索之后,我找不到任何库或任何东西可以在闪存中获取希伯来语日期。但是,我找到了这个网站:

http://www.hebcal.com/converter/?gd=21&gm=6&gy=2011&g2h=Convert+Gregorian+to+Hebrew+date

hebcal.com 似乎接受 URL 中 GET 变量中的公历日期,并返回正确的希伯来日期。 所以,理论上您可以使用 flash URLLoader 在 flash 中加载由您当前的公历日期组成的 URL,然后解析请求响应中的 html 数据以提取希伯来日期。

我继续了解如何使用 web 服务 hebcal.com 为您执行此操作。这是完成此任务的 actionscript 3 代码:

import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;

var currentDate:Date = new Date();

var dateLoader:URLLoader = new URLLoader();

var dateQueryURL:String = 'http://www.hebcal.com/converter/?gd=' + currentDate.date + '&gm=' + (currentDate.month+1)  + '&gy=' + currentDate.fullYear + '&g2h=Convert+Gregorian+to+Hebrew+date';

trace(dateQueryURL);

dateLoader.addEventListener(Event.COMPLETE, onDateConverted);

dateLoader.load(new URLRequest(dateQueryURL));

var hebrewDateSearchRegexp:RegExp = /([a-zA-Z0-9 ,]1,30)(?=<\/b)/gixm;

function onDateConverted(e:Event):void

    var queryResult:String = e.currentTarget.data as String;
    var hebrewDate:String;
    var dateArr:Array = queryResult.match(hebrewDateSearchRegexp);

    if(dateArr && dateArr.length > 0)
        //The date was found in the string
        hebrewDate = dateArr[0];
        trace("The current Hebrew date is: " + hebrewDate);
    else
        trace("Error retrieving current Hebrew date.");
    

所以基本上我只是使用一个正则表达式来查找/选择仅包含希伯来日期的 HTML 部分。然后我使用 string.match() 提取它并在跟踪语句中输出它。

另请注意,对于 currentDate.month,我必须将其增加 1,因为 flash 从 0 到 11 计算月份,而 hebcal.com 上的工具从 1 到 12 计算。

【讨论】:

以上是关于希伯来语/犹太日期转换的主要内容,如果未能解决你的问题,请参考以下文章

PHP 从日期戳(mysql)获取UTF-8希伯来日期

从日期戳获取UTF-8希伯来文日期(mysql)

将希伯来语单词转换为英文字符

SQL 怎么将日期时间格式转换成日期

SQL 怎么将日期时间格式转换成日期

gson转换日期会失真吗