我在数据库中有大量的日期,保存格式类似于12/18/2013
现在我需要将其转换为太阳历日期,例如1392/09/27
有没有什么方法可以进行转换?(获取农历日期并将其转换为太阳历日期)
我需要使用vb.net实现。
我在数据库中有大量的日期,保存格式类似于12/18/2013
现在我需要将其转换为太阳历日期,例如1392/09/27
有没有什么方法可以进行转换?(获取农历日期并将其转换为太阳历日期)
我需要使用vb.net实现。
.NET中的System.Globalization命名空间提供了多种不同的日历。
您可以通过创建一个日期并从其他日历中获取天、月和年来在这些日历之间进行转换。
Sub Main()
Dim gregorianDate = DateTime.Parse("12/18/2013")
Dim solarCalendar = New PersianCalendar()
Dim solarDay = solarCalendar.GetDayOfMonth(gregorianDate)
Dim solarMonth = solarCalendar.GetMonth(gregorianDate)
Dim solarYear = solarCalendar.GetYear(gregorianDate)
Console.WriteLine("{0}/{1}/{2}", solarYear, solarMonth, solarDay)
Console.Read()
End Sub
输出:
1392/9/27
经过一番思考,波斯历 返回了你所寻找的“太阳”日期。
Dim parsedDateTime As Date = Date.Parse("12/18/2013", CultureInfo.GetCultureInfo("en-US"))
Dim formatted As String = parsedDateTime.ToString("yyyy/mm/dd", CultureInfo.GetCultureInfo("th"))
因此,您可以通过结合这两个步骤来从一种文化转换到另一种文化,就像这样:
Public Function ConvertDateStringToCulture(dateString As String, fromCulture As String, toCulture As String) As String
Dim parsedDateTime As Date = Date.Parse(dateString, CultureInfo.GetCultureInfo(fromCulture))
Dim formatted As String = parsedDateTime.ToString("yyyy/mm/dd", CultureInfo.GetCultureInfo(toCulture))
Return formatted
End Function
比如,如果你想将美国日期转换为泰国日期,可以像这样进行:
Dim converted As String = ConvertDateStringToCulture("12/18/2013", "en-US", "th")